first import

This commit is contained in:
Jacques De SAGAN 2024-04-07 11:52:06 +08:00
commit 03de9e18bb
597 changed files with 310995 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*.o
ebutest
ebclient

201
LICENSE Normal file
View file

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

66
README.md Normal file
View file

@ -0,0 +1,66 @@
ebclient is a simple CLI program for accessing [EPWING](https://ja.wikipedia.org/wiki/EPWING) & [電子ブック](<https://ja.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E3%83%96%E3%83%83%E3%82%AF_(%E8%A6%8F%E6%A0%BC)>) dictionaries.
It accepts queries from stdin and outputs results to stdout. It's used as the backend of
[EBWeb](https://github.com/sagan/EBWeb).
## Dependencies
- [libebu](http://green.ribbon.to/~ikazuhiro/dic/ebu.html). It's a fork of
[libeb (EB ライブラリ)](https://www.mistys-internet.website/eb/) which adds UTF-8 support to the latter.
- [libmxml](https://github.com/michaelrsweet/mxml). Used for accessing xml format gaiji
([外字](https://ja.wikipedia.org/wiki/%E5%A4%96%E5%AD%97)) -
unicode mapping files that some epwing dictioneries provide.
- libz (`apt-get install lib32z1-dev`)
## Build
Install build tools (`apt-get install build-essential libtool-bin`) and run `make` in src/ dir.
The dependencies must be compiled priorly and put to corresponding locations which are referenced in Makefile.
## Usage
`./ebclient <dicts_path>`
`<dicts_path>` is the dir where epwing dictionaries files are put at, e.g.:
```
dicts_path/
|---dict_A/
|------CATALOGS
|------subbook_1/
|------subbook_2/
|---dict_B/
|------CATALOGS
|------subbook_1/
|------subbook_2/
```
libeb project provides [appendix](https://www.mistys-internet.website/eb/appendix.html) (補助データ) files for
some known dictionaries. For epwing dictionary, put the appendix file in the "subbook" folder
(the dir where "honmon" file exists) and rename it to "furoku". For 電子ブック dictionary,
put it to the subbook folder (the dir where "start" file exists) and keep the original "appendix" name unchanged.
## Communication protocol
When started, ebclient output the flatten list of all subbooks of all dictionaries in dicts_path in json format (with a trailing `\n`), e.g.:
```
["広辞苑第六版","付属資料","NHK 日本語発音アクセント辞典"]
```
Afterwards, it read queries from stdin line by line, and output results to stdout in the same order.
Basic (input) query format:
```
<subbook_index> <query_type> <keyword>
```
- `<subbook_index>` : the subbook index (0-based) in the flatten list to query
- `<query_type>`: 0: prefix match; 1: suffix match; 2: exact match
Basic (output) result format (json):
[heading1, text1, heading2, text2...]
There are other query formats, distinguished by the first char of query line. For example, query line starts with `d` read an audio (wav) content from dictionary. For more, read the codes.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

1
lib/ebu/AUTHORS Normal file
View file

@ -0,0 +1 @@
Motoyuki Kasahara <m-kasahr@sra.co.jp>

23
lib/ebu/COPYING Normal file
View file

@ -0,0 +1,23 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

708
lib/ebu/ChangeLog Normal file
View file

@ -0,0 +1,708 @@
2020-04-13 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Add color chart suppot.
* configure.ac: Version 4.5.
* ebu/color.c: New file.
* ebu/text.h (EB_HOOK_BEGIN_COLOR_CHART)
(EB_HOOK_END_COLOR_CHART): New macros.
* ebu/defs.h (EB_NUMBER_OF_HOOKS): Increase to 57.
(EB_MAX_COLOR_VALUE_LENGTH, EB_MAX_COLOR_NAME_LENGTH): New macros.
(EB_Subbook_Struct): Add new member color_chart.
* ebu/error.h (EB_ERR_NO_SUCH_COLOR): New macro.
(EB_NUMBER_OF_ERRORS): Increased to 70
* ebu/readtext.c (eb_read_text_internal): Support new hooks.
* ebu/subbook.c (eb_load_subbook_indexes): Support index of color
chart.
* ebu/jacode.c (ebcdic_ascii_table): New constant.
(eb_ebcdic037_to_ascii): New function.
* ebu/error.c (error_strings, error_messages): Add new entry for
EB_ERR_NO_SUCH_COLOR.
* ebu/eb.h: Add new functions in color.c
* ebu/build-post.h.in: Add declaration for eb_ebcdic037_to_ascii.
* ebu/Makefile.am (libebu_la_SOURCES): Add color.c
* ebinfo/ebinfo.c (output_information): Output information for
color chart.
* po-ebutils/ebuutils.pot: Updated.
* po-ebutils/ja.po: Likewise.
* po-eb/ebu.pot: Likewise.
* po-eb/ja.po: Likewise.
2020-03-10 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebu/zio.c (zio_unzip_slice_epwing): Fix wrong variable type
definition.
Cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833085#5
2019-06-30 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebzip/zipfile.c (ebzip_zip_file_internal): Fix progress messages
were showed too frequently.
2019-06-30 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Add libdeflate library support. To enable it, run configure with
--enable-libdeflate option.
* configure.ac: Accept --enable-libdeflate,
--with-libdeflate-includes, --with-libdeflate-libraries options.
* ebu/bitmap.c (png_compress): Add libdeflate support. Return 0
when succeeded, otherwise -1.
(eb_bitmap_to_png): Adopt to the change.
* ebzip/zipfile.c (ebzip_zip_file_internal): Add libdeflate support.
* ebzip/unzipfile.c (ebzip_unzip_file_internal): Likewise.
* ebzip/ebzip1.c (ebzip1_slice): Likewise.
* ebzip/ebzip.h: Likewise.
* ebu/zio.c (zio_unzip_slice_ebzip1)
(zio_unzip_slice_ebzip1_internal): zio_unzip_slice_ebzip1_internal
is extracted uncompressing part from zio_unzip_slice_ebzip1 and
libdeflate support is added.
* libebutils/ebutils.c (output_version): output "LIBDEFLATE"
feature when build with libdeflate.
2019-06-27 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebzip/ebzip1.c (ebzip1_slice): Use Z_BEST_COMPRESSION instead of
Z_DEFAULT_COMPRESSION when compression level is higher than 3.
2015-03-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebfont/ebfont.c (make_subbook_size_fonts): Fix error handling.
2015-02-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* m4/gettext.m4 (eb_GNU_GETTEXT): Support Cygwin environment.
* libebutils/puts_eucjp.c (fputs_eucjp_to_locale): Support the
case which has libiconv_open and doesn't have iconv_open.
2015-02-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* libebutils/makedir.c (make_missing_directory): Fix the case of
64-bit Windows.
2015-02-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebu/urlparts.c (url_parts_parse): Do not perform a NULL-pointer
dereference.
Cf. Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=715855#20
2015-02-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* libebutils/makedir.c (make_missing_directory): Correct parameter
declarations.
Cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748030#12
* libebutils/makedir.h: Include sys/types.h.
2015-02-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
* ebinfo/ebinfo.c (output_multi_information, output_information):
Fix too many arguments for format string.
Cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776602#5
2010-03-08 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.4.3.
* configure.ac (AC_INIT): Set version to 4.4.3.
* eb/ebnet.c (ebnet_open): Use _atoi64() or atol(), when atoll()
is not available.
* configure.ac (LIBEB_VERSION_INFO):
EB Library verison 4.2.2 sets LIBEB_VERSION_INFO to 15:0:2,
but it is wrong. To avoid the confusion, I decide to update
LIBEB_VERSION_INFO to 16:0:0.
2010-01-16 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.4.2.
* eb/readtext.c (eb_read_text_internal): In the escape sequence
0x1c and 0x1d sections, separate EBXA-C codes from others.
2010-01-03 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* configure.ac (AC_INIT): Set version to 4.4.2.
* configure.ac (LIBEB_VERSION_INFO): Set LIBEB_VERSION_INFO to 15:0:2.
* ebzip/speedup.c (ebzip_set_zip_speedup):
Add missing ebzip_close() and ebzip_finalize() calls for zio.
* ebzip/ebzip.c (main): Don't call(1) just after unzip_book().
* ebzip/copyfile.c (ebzip_copy_file): Don't copy a file in
case of test mode.
* ebzip/unlinkfile.c: New file.
* ebzip/Makefile.am (ebzip_SOURCES): Add unlinkfile.c
* ebzip/zipfile.c (ebzip_zip_file): Don't call unlink() directly
for an input file. Call unlink_files_add() instead.
* ebzip/unzipfile.c (ebzip_unzip_file): Likewise.
* ebzip/copyfile.c (ebzip_copy_file): Likewise.
2009-05-02 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/text.h (EB_HOOK_BEGIN_UNICODE, EB_HOOK_END_UNICODE,
EB_HOOK_BEGIN_EBXAC_GAIJI, EB_HOOK_END_EBXAC_GAIJI,
EB_HOOK_EBXAC_GAIJI): Added.
* eb/defs.h (EB_NUMBER_OF_HOOKS): Defined as 54.
* eb/defs.h (EB_Text_Context_Struct): Add `ebxac_gaiji_flag'.
* eb/readtext.c (eb_read_text_internal): Also recognize escape
sequences 0x0b, 0x0c, 0x1c and 0x1d.
2009-03-14 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.4.1.
* configure.ac (AC_INIT): Set version to 4.4.1.
* configure.ac (LIBEB_VERSION_INFO): Set LIBEB_VERSION_INFO to 14:0:1.
* eb/binary.c (eb_set_binary_mono_graphic, eb_set_binary_gray_graphic,
eb_set_binary_wave, eb_set_binary_color_graphic): Apply large
file support patch by Kazuhiro Ito.
2009-02-28 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.4.
* configure.ac (AC_CHECK_FUNCS): Also checks atoll() and _atoi64().
* eb/ebnet.c (ebnet_open, ebnet_lseek, ebnet_read):
Support large files.
* eb/multiplex.c (EBNet_Socket_Entry_Struct, ebnet_get_file_size):
Likewise.
* eb/ebnet.h: Likewise.
2009-01-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.4.
* eb/zio.c (zio_open_ebzip): Always set zio->code to ZIO_EBZIP1,
regardless of ebzip-mode value in an EBZIP header.
* ebzip/zipfile.c (ebzip_zip_file_internal): Improve compression
progress messages. Don't output a message with the same percent
as the previous.
* ebzip/unzipfile.c (ebzip_unzip_file_internal): Also improve
uncompression messages.
* ebzip/zipbook.c (ebzip_zip_book_eb, ebzip_zip_book_epwing):
Output an error message when make_missing_directory() fails.
* ebzip/unzipbook.c (ebzip_unzip_book_eb, ebzip_unzip_book_epwing):
Ditto.
* ebzip/copyfile.c (ebzip_copy_files_in_directory): Ditto.
2009-01-23 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* INSTALL: Describe `--enable-largefile' option of configure.
* eb/subbook.c (eb_set_subbook): If eb_set_subbook_eb() or
eb_set_subbook_epwing() returns -1, also this function returns -1.
* ebzip/zipbook.c (ebzip_zip_book_eb, ebzip_zip_book_epwing):
Output a warning mesage when eb_load_all_subbooks() fails.
* ebzip/unzipbook.c (ebzip_unzip_book_eb,
ebzip_unzip_book_epwing): Ditto.
* ebzip/zipinfobook.c (ebzip_zipinfo_book_eb,
ebzip_zipinfo_book_epwing): Ditto.
* ebzip/zipfile.c (ebzip_zip_file_internal): Don't output
strerror(errno) in an error message when zio_open(), zio_lseek() or
zio_read() fails, since errno may be 0.
* ebzip/unzipfile.c (ebzip_unzip_file_internal): Likewise.
* ebzip/sppedup.c (ebzip_zipinfo_file_internal): Likewise.
2009-01-08 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* configure.ac (AC_INIT): Set version to 4.4.
* configure.ac (EB_VERSION_MINOR): Set EB_VERSION_MINOR to 4.
* configure.ac (LIBEB_VERSION_INFO): Set LIBEB_VERSION_INFO to 13:0:0.
* configure.ac (eb_SYS_LARGEFILE): Added.
* m4/largefile.m4: New file. It defines macros to check
large file support.
* m4/libtool.m4, m4/m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4,
m4/ltversion.m4, m4/lt~obsolete.m4, ltmain.sh, config.guess,
config.sub: Import from libtool-2.2.6.
* depcomp, missing, compile, install-sh: Import from Autoconf-1.63.
* po-eb/Makefile.in, po-ebutils/Makefile.in (datarootdir):
Set `datarootdir' macro.
* m4/eb.m4 (AC_C_CONST, AC_C_PROTOTYPES, AC_HEADER_TIME):
Don't call those obsolete macros any longer.
* po-ep/Makefile.in, po-ebutils/Makefile.in (datarootdir): Defined.
2009-01-07 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/build-post.h.in (off_t_is_large): New macro.
* eb/zio.c (off_t_is_large): Likewise.
* ebzip/zipinfofile.c, ebzip/sebxa.c, ebzip/zipfile.c,
ebzip/speedup.c, ebzip/unzipfile.c, ebzip/copyfile.c:
Support large files (over 2GB).
* eb/narwfont.c, eb/zio.c, eb/subbook.c, eb/readtext.c, eb/binary.c,
eb/appsub.c, eb/multi.c, eb/search.c: Likewise.
2008-12-25 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.3.3.
* configure.ac (AC_INIT): Set version to 4.3.4.
* m4/gettext.m4 (eb_GNU_GETTEXT): Fix a bug of iconv() and
iconv_open() checks. Don't add '-liconv' to LIBS at all times.
2008-09-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.3.3.
* configure.ac (AC_INIT): Set version to 4.3.3.
* configure.ac (LIBEB_VERSION_INFO): Set it to 12:7:0.
* ltmain.sh, m4/libtool.m4, config.guess, config.sub: Import from
libtool-1.5.26.
2008-09-17 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/Makefile.am (libeb_la_LDFLAGS): Add `-no-undefined' option
Add $(ZLIBLIBS) and $(INTLLIBS) arguments.
* ebzip/Makefile.am (ebzip_LDADD): Exchange the order of
$(LIBEBUTILS) and $(LIBEB).
2008-02-04 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebzip/zipinfofile.c (ebzip_zipinfo_file_internal): Don't close
`in_file' directly. On Windows, it raises an exception.
2008-01-28 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.3.2.
* configure.ac (LIBEB_VERSION_INFO): Set it to 12:6:0.
In EB Library version 4.3.1, LIBEB_VERSION_INFO is set to 12:4:1,
but it is incorrect. It would be 12:5:0.
* po-ebutils/ja.po: Add a missing space to a msgstr corresponding
to the msgid "image-menu ".
2008-01-14 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.3.1.
* ltmain.sh, config.sub, config.guess: Imported from libtool-1.5.24.
2007-02-13 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ltmain.sh, config.sub, config.guess: Imported from libtool-1.5.22.
* eb/multiplex.c (ebnet_set_book_name): Fix a buffer overrun bug.
* eb/binary.c (eb_set_binary_mpeg): Fix a bug that it doesn't
compose a movie file name correctly.
* eb/book.c (misleaded_book_table): Add Panasonic KX-EBP2 accessories.
2006-08-31 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.3.
* configure.ac (LIBEB_VERSION_INFO): Set it to 12:4:0.
* configure.ac (AC_INIT): Set version to 4.3.0.
* configure.ac (EB_VERSION_MINOR): Set it to 3.
* eb/subbook.c (eb_load_subbook_indexes): Support for image menu,
contributed by Kazuhiro Ito.
* eb/readtext.c (eb_read_text_internal): Ditto.
* eb/readtext.c (EB_MAX_ARGV): Change the value from 6 to 7.
* eb/text.h (EB_HOOK_BEGIN_IMAGE_PAGE, EB_HOOK_END_IMAGE_PAGE,
EB_HOOK_BEGIN_CLICKABLE_AREA, EB_HOOK_END_CLICKABLE_AREA):
Add the four hooks.
* eb/menu.c (eb_have_image_menu, eb_image_menu): New functions.
* eb/defs.h (EB_NUMBER_OF_HOOKS): Change the value from 45 to 49.
* eb/defs.h (EB_Subbook_Struct): Add the member `image_menu'.
* ebinfo/ebinfo.c (output_information): Also display "image-menu".
2006-06-20 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Makefile.am (EXTRA_DIST): Add `ChangeLog.2'.
* ebappendix/ebappendix.in: Use `File::Basename' module.
* ebappendix/ebappendix.in: Specify `my' modifier to local variables.
* ebappendix/ebappendix.in: Use reference (\$var, \@array and \%hash)
instead of alias (*name).
* ebzip/ebunzip.c (ebzip_unzip_book_eb): Fix a bug that `ebunzip
--test' rewrites START files.
* eb/zio.c (zio_unzip_slice_sebxa): Fix a bug in the uncompression
algorithm.
2006-06-16 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/subbook.c (eb_set_subbook_epwing): Fix a bug that EB
cannot initialize a book if a subbook has stream data only
and the subbook shares `data' sub-directory with another
subbook.
* libebutils/strlist.c, libebutils/strlist.h: New file.
* libebutils/Makefile.am (libebutils_a_SOURCES): Add strlist.c.
* libebutils/Makefile.am (dist_noinst_HEADERS): Add strlist.h.
* ebzip/zipbook.c (ebzip_zip_book_eb, ebzip_zip_book_epwing):
Use `String_List' to avoid compressing a file twice.
* ebzip/unzipbook.c (ebzip_unzip_book_eb, ebzip_unzip_book_epwing):
Ditto.
2006-05-15 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebappendix/ebappendix.in: Fix a bug that ebappendix creates
an appendix in EB style even when it reads `catalogs.app'.
2005-11-26 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.2.2.
* ltmain.sh, config.sub, config.guess, depcomp, install-sh:
Imported from libtool-1.5.20 and Automake-1.9.6.
* m4/lcmessage.m4, m4/gettext.m4, m4/sockaddrin6.m4, m4/in6addr.m4,
m4/sockinttypes.m4, configure.ac: Substitute AC_TRY_COMPILE,
AC_TRY_LINK and AC_TRY_RUN with AC_COMPILE_IFELSE, AC_LINK_IFELSE
and AC_RUN_IFELSE.
2005-11-21 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* m4/gettext.m4: Check for existance of libintl and libiconv even
when `--with-gettext-libraries' or `--with-iconv-libraries' option
is not specified.
* m4/gettext.m4: Do not perform AC_TRY_RUN to check for gettext().
We perform AC_TRY_LINK instead. On Debian Linux, the test program
doesn't succeed though gettext() is available. The test program
called setlocale(LC_ALL, "en_US") but it didn't change the locale
to `en' or `en_US' since "en_US" is not acceptable locale name on
that environment.
* gttest.po, gttest.mo: Deleted.
* Makefile.am (EXTRA_DIST): Likewise.
2005-11-20 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/binary.c (eb_set_binary_wave): Fix a bug that it set wrong
wave data size to `context'.
* eb/binary.c (eb_set_binary_wave): Fix a bug that it generated
wrong RIFF header when the CD-ROM book provided fmt block of the
wave data.
* eb/multiplex.c (ebnet_get_addresses): Retry getnameinfo()
without the NI_WITHSCOPEID flag if getnameinfo() with that flag
doesn't succeed.
2005-10-25 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb.conf.in (EBCONF_ENABLE_NLS): Fix a bug that Makefile filled
an incorrect value.
* Makefile.am (eb.conf): Likewise.
* eb/book.c (eb_load_catalog_epwing): When EPWING version is 1,
the function never read an extra information block.
2005-09-16 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/book.c (eb_load_catalog_epwing): Fix a bug that it sometimes
raises an error when the catalog file doesn't have extra information
block.
2005-09-08 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/search.c (eb_and_hit_lists): Fix a bug that it outputs
a wrong debug mesasge at the end of the function.
2005-08-14 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.2.1.
* eb/book.c (eb_load_catalog_epwing): Fix a bug that EB Library
sets wrong graphic and sound file names if target subbook contains
graphic and/or sound data in a text file.
* eb/book.c (eb_load_catalog_epwing): Correct a debug message
that shows EB_ERR_FAIL_READ_CAT error.
2005-05-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.2.
* eb/book.c (eb_load_catalog_epwing): Fix a bug that EB Library
sets wrong graphic and sound file names if target subbook has
HONMON2 only.
* eb/binary.c (eb_set_binary_wave): Fix a bug that the function
appends "fmt " to the wave data mistakenly.
2005-04-18 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ltmain.sh, config.guess, config.sub, install-sh, m4/libtool.m4:
Import from libtool 1.5.18.
2005-04-10 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/build-post.h.in (EB_TEXT_TEXT): Renamed to EB_TEXT_MAIN_TEXT.
* eb/ebinfo.c: Support `Cross Search'.
* eb/multiplex.c (ebnet_create_new_connection): Set stream socket
to non-blocking I/O mode.
2005-03-20 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/binary.c (eb_read_binary_mono_graphic,
eb_read_binary_gray_graphic): Fix the 2nd argument to zio_lseek().
`line_length * -2' must be `(off_t)line_length * -2' since
`line_length' is `size_t' which is usually unsigned integral type.
2005-02-05 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/multi.c (eb_initialize_multi_searches,
eb_finalize_multi_searches): Remove the internal functions.
* eb/defs.h (EB_Subbook_Struct): Add the member `cross'.
* eb/defs.h (EB_MAX_CROSS_ENTRIES): Defined.
* eb/build-post.h.in (EB_SEARCH_CROSS): Defined.
* eb/Makefile.am (libeb_la_SOURCES): Add `cross.c'.
* eb/cross.c: New file.
* eb/search.c (eb_initialize_searches, eb_hit_list): Support for
cross search.
* eb/subbook.c (eb_load_subbook_indexes): Ditto.
* eb/filename.c (eb_compose_movie_path_name): New function.
* configure.ac (AC_CONFIG_SUBDIRS): Remove `zlib'.
* Makefile.am (SUBDIRS): Remove $(ZLIB_SUBDIR).
2005-01-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebrefile/ebrefile.c (copy_file, refile_book): `ebrefile'
preserves an original catalog file in an output directory as
"catalogs.old" and then it overwrites the original catalog file.
2004-12-05 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.1.3.
* po-eb/Makefile.in, po-ebutils/Makefile.in (mkinstalldirs):
Defined as `$(install_sh) -d'.
* po-eb/Makefile.in, po-ebutils/Makefile.in (install_sh):
Defined as `@install_sh@'.
* configure.ac (LIBEB_VERSION_INFO): Set it to 9:1:0.
* configure.ac (AC_INIT): Set version to 4.1.3.
2004-11-28 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.1.2.
* ebzip/ebzip.c (main): Also recognize `\' as a path separator when
DOS_FILE_PATH is defined.
* po-eb/Makefile.in, po-ebutils/Makefile.in (mkinstalldirs):
Defined as `$(SHELL) $(top_srcdir)/mkinstalldirs'.
It was defined as `$(mkdir_p)', but it causes cycric reference
on FreeBSD-5.3-RELEASE.
* eb/readtext.c (eb_seek_text): Accept position whose offset is
greater than or equal to EB_SIZE_PAGE.
* eb/binary.c (eb_set_binary_mono_graphic, eb_set_binary_gray_graphic,
eb_set_binary_wave, eb_set_binary_color_graphic, eb_set_binary_mpeg):
Don't accept position whose offset is less than 0.
2004-11-22 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/search.c (eb_hit_list_word, eb_hit_list_keyword,
eb_hit_list_multi): Fix a historical bug that EB Library cannot
find matched entries in particular books.
* eb/eb.c (eb_initialize_library): In debug mode, EB Library
displays its version number.
* eb/searh.c (eb_presearch_word, eb_hit_list_word,
eb_hit_list_keyword, eb_hit_list_multi): The debug messages also
outputs index page number.
2004-10-24 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.1.1.
* libebutils/getopt.c: Fix a bug in getopt_long().
It may abort when it outputs the message "option `--xxx' requires
an argument".
* eb/readtext.c (eb_write_text_byte2): Fix a bug that the function
writes incorrect data on the text buffer.
2004-07-03 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.1.
* doc/Makefile.am (uninstall-hook): Defined.
* doc/Makefile.am: Fix bugs that `make all' fails when $(srcdir)
!= `.'.
2004-06-23 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* doc/Makefile.am (pkgdoc_DATA): Do not use meta characters to
specify splitted HTML files. Use `install-data-hook' instead.
2004-05-27 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* README-ja, INSTALL-ja: Removed.
* README, INSTALL: These documents are now written in Japanese.
* doc-ja: Directory removed.
* doc: The documents under the directory are now written in Japanese
and with HTML format.
* Makefile.am (SUBDIRS): Delete `doc-ja'.
* configure.ac (AC_CONFIG_FILES): Ditto.
* configure.ac (AC_ARG_WITH): Add `--with-pkgdocdir' option.
* move-if-change: Rewrite it from scratch.
2004-05-22 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* EB Library now adopts BSD License.
* ebzip/zipfile.c (ebzip_zip_file_internal),
ebzip/zipbook.c (ebzip_zip_book_eb, ebzip_zip_book_epwing):
Support for partial compression.
* ebzip/speedup.c: New file.
* ebzip/Makefile.am (ebzip_SOURCES): Add `ebzip/speedup.c'.
* po-ebutils/Makefile.in (POTFILES): Ditto.
2004-05-16 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebzip/sebxa.c (fix_sebxa_start): Renamed to rewrite_sebxa_start().
* ebzip/sebxa.c (fix_sebxa_start): Fix a bug that ebzip outputs
`completed' message even when quiet flag is enabled.
2004-05-09 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebzip/zipfile.c (ebzip_zip_file_internal): Output compression
result even when input is an empty file.
2004-05-08 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* configure.ac (AC_CHECK_HEADERS): Delete `utime.h' and `sys/utime.h'.
Add `mbstring.h' instead.
* ebzip/ebzip.h (EBZIP_OVERWRITE_QUERY): Renamed to
EBZIP_OVERWRITE_CONFIRM.
* ebzip/ebzip.c: Add `--overwrite' (-w) option.
* ebzip/zipfile.c (ebzip_zip_file_internal): Don't abort when ebzip
fails to delete an original file. Delete an original file even when
ebzip outputs "already exists, skip the file" message.
ebzip/unzipfile.c (ebzip_unzip_file_internal): Ditto.
ebzip/copyfile.c (ebzip_copy_file): Ditto.
2004-05-07 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Use Automake-1.8.4 and Libtool-1.5.6.
* configure.ac (AC_TYPE_SIGNAL, AC_STRUCT_UTIMBUF): Removed.
* configure.ac (AC_CHECK_FUNCS): Remove dup2() and utime().
* m4/herrno.m4, m4/utimbuf,m4, m4/voidpointer.m4: Removed.
2004-04-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/bitmap.c (eb_bitmap_to_png): New function.
* eb/bitmap.c (eb_bitmap_to_xbm, eb_bitmap_to_xpm, eb_bitmap_to_gif,
eb_bitmap_to_bmp, eb_bitmap_to_png): They return EB_Error_Code.
* ebfont/ebfont.c: `ebfont' supports PNG format images.
* eb/zio.c: Enlarge cache buffer, contributed by Takashi NEMOTO.
* eb/setword.c (eb_convert_euc_jp): Fix argument order.
* configure.ac (AC_INIT): Set version to 4.1.
* configure.ac (EB_VERSION_MINOR): Set minor version to 1.
* configure.ac (LIBEB_VERSION_INFO): Set version to 9:0:0.
* configure.ac (AC_C_CONST, AC_C_PROTOTYPES, AC_C_VOID_POINTER,
AC_HEADER_STDC, AC_HEADER_STAT, AC_HEADER_TIME, AC_HEADER_DIRENT,
AC_FUNC_VPRINTF, AC_TYPE_OFF_T, AC_TYPE_SIZE_T): Removed.
* configure.ac (AC_CHECK_HEADERS): Remove checks for fcntl.h,
limits.h, memory.h, stdlib.h and unistd.h.
* eb/Makefile.am
* configure.ac (AC_CHECK_FUNCS): Remove checks for getcwd(), memcpy(),
memmove() and strchr().
* configure.ac (AC_REPLACE_FUNCS): Remove checks for memset() and
strerror().
* eb/appendix.c, eb/appendix.h, eb/appsub.c, eb/bcd.c, eb/binary.c,
eb/binary.h, eb/bitmap.c, eb/book.c, eb/booklist.c, eb/booklist.h,
eb/build-post.h.in, eb/build-pre.h, eb/copyright.c, eb/defs.h,
eb/eb.c, eb/eb.h, eb/ebnet.c, eb/ebnet.h, eb/endword.c, eb/error.c,
eb/error.h, eb/exactword.c, eb/filename.c, eb/font.c, eb/font.h,
eb/getaddrinfo.c, eb/getaddrinfo.h, eb/hook.c, eb/jacode.c,
eb/keyword.c, eb/linebuf.c, eb/linebuf.h, eb/lock.c, eb/log.c,
eb/makeproto, eb/match.c, eb/menu.c, eb/multi.c, eb/multiplex.c,
eb/narwalt.c, eb/narwfont.c, eb/readtext.c, eb/search.c, eb/setword.c,
eb/stopcode.c, eb/strcasecmp.c, eb/subbook.c, eb/text.c, eb/text.h,
eb/urlparts.c, eb/urlparts.h, eb/word.c, eb/zio.c, eb/zio.h,
ebfont/ebfont.c, ebinfo/ebinfo.c, ebrefile/ebrefile.c,
ebstopcode/ebstopcode.c, ebzip/copyfile.c, ebzip/ebzip.c,
ebzip/ebzip.h, ebzip/ebzip1.c, ebzip/sebxa.c, ebzip/unzipbook.c,
ebzip/unzipfile.c, ebzip/zipbook.c, ebzip/zipfile.c,
ebzip/zipinfobook.c, ebzip/zipinfofile.c, libebutils/ebutils.c,
libebutils/ebutils.h.in, libebutils/getopt.c, libebutils/getopt.h,
libebutils/getumask.c, libebutils/getumask.h, libebutils/makedir.c,
libebutils/makedir.h, libebutils/puts_eucjp.c, libebutils/samefile.c,
libebutils/samefile.h, libebutils/strcasecmp.c, libebutils/yesno.c,
libebutils/yesno.h, samples/appendix.c, samples/booklist.c,
samples/disctype.c, samples/font.c, samples/initexit.c,
samples/subbook.c, samples/text.c, samples/word.c:
EB Library now assumes POSIX.1-1990 systems and requires ANSI C89
compiler.
2004-03-20 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* Version 4.0.1.
* ebzip/zipfile.c, ebzip/unzipfile.c, ebzip/copyfile.c, ebzip/sebxa.c:
Output progress messages to stderr, not stdout.
* ebzip/zipbook.c (ebzip_zip_book, ebzip_zip_book_eb,
ebzip_zip_book_epwing): Abort if ebzip_zip_file() fails.
* ebzip/unzipbook.c (ebzip_unzip_book, ebzip_unzip_book_eb,
ebzip_unzip_book_epwing): Abort if ebzip_unzip_file() or
ebzip_unzip_start_file() fails.
2004-02-29 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* ebzip/zipinfobook.c (ebzip_zipinfo_book_epwing): Also display
movie files.
2004-01-30 Motoyuki Kasahara <m-kasahr@sra.co.jp>
* eb/build-pre.h, eb/defs.h, ebzip/ebzip.h (EB_P): Fix typo in
the definition of EB_P.
* eb/zio.h (ZIO_P): Likewise.

1464
lib/ebu/ChangeLog.0 Normal file

File diff suppressed because it is too large Load diff

2222
lib/ebu/ChangeLog.1 Normal file

File diff suppressed because it is too large Load diff

1409
lib/ebu/ChangeLog.2 Normal file

File diff suppressed because it is too large Load diff

203
lib/ebu/INSTALL Normal file
View file

@ -0,0 +1,203 @@
$BI,MW$J%=%U%H%&%'%"(B
==================
$BK\%=%U%H%&%'%"$r%$%s%9%H!<%k$9$k$K$O!"A0$b$C$F(B zlib $B$r%$%s%9%H!<%k$7$F(B
$B$*$/I,MW$,$"$j$^$9!#(Bzlib $B$O<!$N>l=j$+$iF~<j$9$k$3$H$,$G$-$^$9!#(B
http://www.gzip.org/zlib/
$B%7%9%F%`$K$h$C$F$O!":G=i$+$i(B zlib $B$,%$%s%9%H!<%k$5$l$F$$$k>l9g$b$"$j$^(B
$B$9!#(B
$B4pK\E*$J%$%s%9%H!<%kJ}K!(B
========================
$BK\%=%U%H%&%'%"$N:G$bC1=c$J%3%s%Q%$%kJ}K!$O<!$NDL$j$G$9!#(B
1. $B%=%U%H%&%'%"$N%=!<%9%3!<%I$,CV$+$l$F$$$k%G%#%l%/%H%j$K0\F0(B (`cd')
$B$7!"(B`./configure' $B$r<B9T$7$^$9!#(B`configure' $B$N<B9T$K$O>/!9;~4V$,(B
$B$+$+$j$^$9!#(B
$B<B9T$7$F$$$k4V$O!"$I$N$h$&$J9`L\$r%A%'%C%/$7$F$$$k$N$+$r5-$7$?%a%C(B
$B%;!<%8$,=PNO$5$l$^$9!#(B
2. `make' $B$r<B9T$7$F%=%U%H%&%'%"$r%3%s%Q%$%k$7$^$9!#(B
3. $BG$0U$G!"%=%U%H%&%'%"$KIUB0$7$F$$$k%;%k%U%F%9%H$r<B9T$9$k>l9g$O!"(B
`make check' $B$r<B9T$7$^$9!#(B
4. `make install' $B$r<B9T$7$F!"%W%m%0%i%`$*$h$S%G!<%?%U%!%$%k!"%I%-%e(B
$B%a%s%H$r%$%s%9%H!<%k$7$^$9!#(B
5. `make clean' $B$r<B9T$9$k$H!"@8@.$5$l$?%W%m%0%i%`$N%P%$%J%j%U%!%$%k(B
$B$d%*%V%8%'%/%H%U%!%$%k$r!"%=!<%9%3!<%I$NCV$+$l$?%G%#%l%/%H%j$+$i(B
$B>C$9$3$H$,$G$-$^$9!#(B $B0l=o$K(B `configure' $B$,@8@.$7$?%U%!%$%k$b>C$9(B
$B$K$O(B ($B$3$&$9$k$3$H$G!"JL$N<oN`$N%3%s%T%e!<%?$G%=%U%H%&%'%"$r%3%s(B
$B%Q%$%k$G$-$^$9(B)$B!"(B `make distclean' $B$r<B9T$7$^$9!#(B
$B%3%s%Q%$%i$H%3%s%Q%$%k%*%W%7%g%s(B
================================
$B%7%9%F%`$K$h$C$F$O!"(B`configure' $B%9%/%j%W%H$,M}2r$7$F$$$J$$!"%3%s%Q%$(B
$B%k$d%j%s%/$N$?$a$NFCJL$J%*%W%7%g%s$rM?$($kI,MW$,$"$j$^$9!#%*%W%7%g%s$O(B
$B4D6-JQ?t$rDL$7$F!"(B`configure' $B$KBP$7$F=i4|CM$rM?$($k$3$H$,$G$-$^$9!#(B
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
$B%$%s%9%H!<%kL>(B
==============
$B%G%U%)%k%H$G$O!"(B`make install' $B$r<B9T$9$k$H!"%=%U%H%&%'%"Cf$N%U%!%$%k(B
$B$,(B `/usr/local/bin'$B!"(B`/usr/local/man' $B$J$I$K%$%s%9%H!<%k$5$l$^$9!#(B
`configure' $B$KBP$7$F(B `--prefix=$B%Q%9(B' $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B
`/usr/local' $B0J30$N%$%s%9%H!<%k@h$r;XDj$9$k$H$,$G$-$^(B $B$^$9!#(B
$B%"!<%-%F%/%A%c$K0MB8$7$?%U%!%$%k$H$=$&$G$J$$%U%!%$%k$r!"$=$l$>$l0[$J$C(B
$B$?%$%s%9%H!<%k@h$K%$%s%9%H!<%k$9$k$3$H$b2DG=$G$9!#(B `configure' $B$KBP$7(B
$B$F(B `--exec-prefix=$B%Q%9(B' $B$r;XDj$9$k$H!"%W%m%0%i%`$d%i%$%V%i%j$J$I$N%$%s(B
$B%9%H!<%k@h$,!V%Q%9!W$KJQ$o$j$^$9!#%I%-%e%a%s%H$d!"%G!<%?%U%!%$%k$J$I$O!"(B
$BDL>o$N%$%s%9%H!<%k@h$K%$%s%9%H!<%k$5$l$^$9!#(B
$B2C$($F!"$"$J$?$,DL>o$H$O0[$J$C$?%G%#%l%/%H%j%l%$%"%&%H$r:NMQ$7$F$$$k(B
$B>l9g$O!"(B`--bindir=$B%Q%9(B' $B$H$$$C$?%*%W%7%g%s$r;XDj$9$k$3$H$G!"FCDj$N<oN`(B
$B$N%U%!%$%k$N%$%s%9%H!<%k@h$@$1$rJQ$($k$3$H$,$G$-$^$9!#(B `configure
--help' $B$r<B9T$9$k$H!"$I$N$h$&$J%G%#%l%/%H%j$rJQ99$G$-$k$N$+!"$I$N$h$&(B
$B$J<oN`$N%U%!%$%k$,$I$N%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$k$N$+$,J,$+$j$^$9!#(B
$B%=%U%H%&%'%"$,%5%]!<%H$7$F$$$k$J$i$P!"(B`configure' $B$K(B `--program-prefix=
$B@\F,<-(B' $B$d(B `--program-suffix=$B@\Hx<-(B' $B$H$$$&%*%W%7%g%s$rM?$($k$3$H$G!"(B
$B%$%s%9%H!<%k;~$K%W%m%0%i%`L>$K@\F,<-$d@\Hx<-$rIU2C$9$k$3$H$,$G$-$^$9!#(B
`configure' $B$NF0:n$N@)8f(B
========================
`configure' $B$O<!$K5-$7$?%*%W%7%g%s$rG'<1$7$^$9!#(B
`--cache-file=$B%U%!%$%k(B'
$B%F%9%H$N7k2L$NFI$_9~$_$d=q$-=P$7$K;HMQ$9$k%U%!%$%k$O!"DL>o(B
`./config.cache' $B$G$9$,!"Be$o$j$K!V%U%!%$%k!W$rMQ$$$^$9!#(B
`configure' $B$r%G%P%C%0$9$k$H$-$O!"%U%!%$%k(B $B$K(B `/dev/null' $B$r;XDj(B
$B$9$k$3$H$G!"%-%c%C%7%e$rM^@)$9$k$3$H$,$G$-$^$9!#(B
`--help'
`configure' $B$N%*%W%7%g%s$N0lMw$rI=<($7$F!"=*N;$7$^$9!#(B
`--quiet'
`--silent'
`-q'
$B$I$N%A%'%C%/9`L\$r9T$C$F$$$k$N$+$r<($9%a%C%;!<%8$r=PNO$7$^$;$s!#(B
$BDL>o$N%a%C%;!<%8=PNO$r$9$Y$FM^@)$9$k$K$O!"(B`/dev/null' $B$X%j%@%$%l(B
$B%/%H$7$F2<$5$$(B ($B$?$@$7!"%(%i!<%a%C%;!<%8$K$D$$$F$O=PNO$5$l$F$7$^(B
$B$$$^$9$,(B)$B!#(B
`--srcdir=$B%G%#%l%/%H%j(B'
$B%=%U%H%&%'%"$N%=!<%9%3!<%I$rC5$7=P$9:]$K!"!V%G%#%l%/%H%j!W$rC5$7$^(B
$B$9!#DL>o!"(B`configure' $B$O<+F0E*$K%G%#%l%/%H%j$r7hDj$7$^$9!#(B
`--version'
`configure' $B%9%/%j%W%H$,$I$N%P!<%8%g%s$N(B Autoconf $B$K$h$C$F@8@.$5(B
$B$l$?$N$+$rI=<($7!"=*N;$7$^$9!#(B
$BLr$KN)$D>lLL$O8B$i$l$^$9$,!"(B`configure' $B$K$OB>$K$b$$$/$D$+$N%*%W%7%g%s(B
$B$,MQ0U$5$l$F$$$^$9!#(B
$BA*Br2DG=$J5!G=$N0lMw(B
====================
$BK\%=%U%H%&%'%"$N(B `configure' $B$O0J2<$K5-$7$?(B `--enable-' $B$*$h$S(B
`--with-' $B%*%W%7%g%s$rG'<1$7$^$9!#(B
`--enable-ebnet'
$B1s3V%"%/%;%9BP1~$rM-8z$K$7$^$9!#L5;XDj;~$O(B `yes' $B$G$9!#(B
`--enable-ipv6'
$B1s3V%"%/%;%9$G$N(B IPv6 $BBP1~$rM-8z$K$7$^$9!#(BIPv6 $B$KBP1~$7$?%7%9%F%`(B
$B$G$O!"L5;XDj;~$O(B `yes' $B$,;XDj$5$l$?$b$N$H$_$J$5$l$^$9!#(B`yes' $B$r;X(B
$BDj$7$?$K$b$+$+$o$i$:!"(B`configure' $B$,(B IPv6 $B$r;H$C$?%5%s%W%k%W%m%0%i(B
$B%`$N%3%s%Q%$%k$K<:GT$9$k$H!"%(%i!<$,Js9p$5$l$^$9!#(B`--enable-ebnet=
no' $B$r;XDj$7$?>l9g!"$3$N%*%W%7%g%s$OL5;k$5$l$^$9!#(B
`--enable-pthread'
$B%3%s%Q%$%k$5$l$?(B EB $B%i%$%V%i%j$K(B pthread $BBP1~%3!<%I$,IU2C$5$^$9!#(B
$BL5;XDj;~$O(B `no' $B$G$9!#(B`yes' $B$r;XDj$7$?$K$b$+$+$o$i$:!"(B`configure'
$B$,(B pthread $B$r;H$C$?%5%s%W%k%W%m%0%i%`$N%3%s%Q%$%k$d<B9T$K<:GT$9$k(B
$B$H!"%(%i!<$,Js9p$5$l$^$9!#(B
$BCm0U(B: pthread $B$X$NBP1~$O!"$^$@IT40A4$G<B83E*$J$b$N$G$9!#(B
`--with-pthread-cppflags=FLAGS'
`--with-pthread-cflags=FLAGS'
`--with-pthread-ldflags=FLAGS'
pthread $B%5%]!<%HHG$N(B EB $B%i%$%V%i%j$r:n@.$9$k:]$KIU2C$9$k(B
CPPFLAGS, CFLAGS, LDFLAGS $B$G$9!#(B
`--with-zlib-includes=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B zlib $B$N%X%C%@%U%!%$%k$r(B
$B;2>H$7$^$9!#(B
`--with-zlib-libraries=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B zlib $B$N%i%$%V%i%j%U%!%$(B
$B%k$r;2>H$7$^$9!#(B
`--enable-nls'
$B%a%C%;!<%8$N9q:]2=5!G=(B ($B@53N$K$O(B NLS $B$O(B Native/National Language
Support)$B!#(BEB $B%i%$%V%i%j$*$h$S%f!<%F%#%j%F%#$O!"%a%C%;!<%8$N9q:]2=(B
$B5!G=$,M-8z$K$J$k$h$&$K%3%s%Q%$%k$5$l$^$9!#(B
$B$3$N5!G=$r;H$&$K$O(B GNU gettext $B$,I,MW$G$9!#%7%9%F%`$K(B GNU gettext
$B$,$J$1$l$P!"$3$N%=%U%H%&%'%"$r%$%s%9%H!<%k$9$kA0$K(B GNU gettext $B$r%$(B
$B%s%9%H!<%k$7$F2<$5$$!#K\%=%U%H%&%'%"$O!"$?$H$($P(B Solaris $B$N<BAu$N$h(B
$B$&$K!"(BGNU gettext $B$HHs8_49$J(B gettext $B$K$OBP1~$7$F$$$^$;$s!#(B
$BL5;XDj;~$O!"(Bgettext $B$,MxMQ2DG=$G$"$l$P(B `yes' $B$K!"$=$&$G$J$1$l$P(B
`no' $B$K$J$j$^$9!#(B`yes' $B$r;XDj$7$?$K$b$+$+$o$i$:(B `configure' $B$,(B
gettext() $B4X?t$rMQ$$$?%5%s%W%k%W%m%0%i%`$N%3%s%Q%$%k$d<B9T$K<:GT(B
$B$9$k$H!"%(%i!<$,Js9p$5$l$^$9!#(B
`--with-gettext-includes=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B gettext $B$N%X%C%@%U%!%$%k(B
$B$r;2>H$7$^$9!#%a%C%;!<%8$N9q:]2=5!G=$,L58z$K$J$C$F$$$k>l9g!"$3$N(B
$B%*%W%7%g%s$O0UL#$r;}$A$^$;$s!#(B
`--with-gettext-libraries=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B gettext $B$N%i%$%V%i%j%U%!(B
$B%$%k$r;2>H$7$^$9!#%a%C%;!<%8$N9q:]2=5!G=$,L58z$K$J$C$F$$$k>l9g!"(B
$B$3$N%*%W%7%g%s$O0UL#$r;}$A$^$;$s!#(B
`--with-iconv-includes=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B iconv $B$N%X%C%@%U%!%$%k(B
$B$r;2>H$7$^$9!#%a%C%;!<%8$N9q:]2=5!G=$,L58z$K$J$C$F$$$k>l9g!"$"$k(B
$B$$$O%7%9%F%`>e$N(B gettext() $B4X?t$,(B iconv() $B$r;HMQ$7$J$$>l9g!"$3$N(B
$B%*%W%7%g%s$O0UL#$r;}$A$^$;$s!#(B
`--with-iconv-libraries=DIR'
DIR $B%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$F$$$k(B iconv $B$N%i%$%V%i%j%U%!(B
$B%$%k$r;2>H$7$^$9!#%a%C%;!<%8$N9q:]2=5!G=$,L58z$K$J$C$F$$$k>l9g!"(B
$B$"$k$$$O%7%9%F%`>e$N(B gettext() $B4X?t$,(B iconv() $B$r;HMQ$7$J$$>l9g!"(B
$B$3$N%*%W%7%g%s$O0UL#$r;}$A$^$;$s!#(B
`--enable-shared'
$B6&M-%i%$%V%i%jHG$N(B EB $B%i%$%V%i%j$r:n@.$7$^$9!#L5;XDj;~$O(B `yes' $B$G(B
$B$9!#(B
`--enable-static'
$B@EE*%i%$%V%i%jHG$N(B EB $B%i%$%V%i%j$r:n@.$7$^$9!#L5;XDj;~$O(B `yes' $B$G(B
$B$9!#(B
`--with-gnu-ld'
C $B%3%s%Q%$%i$,(B GNU ld $B$r;HMQ$7$F$$$k$H2>Dj$7$^$9!#(B
$BL5;XDj;~$O!"(B`no' $B$G$9!#(B
`--disable-libtool-lock'
$B%m%C%/$7$J$$$h$&$K$7$^$9!#(B($BJBNs%3%s%Q%$%k$O!"@5$7$/9T$o$l$J$$2DG=(B
$B@-$,$"$j$^$9!#(B)
`--enable-samples'
$B%5%s%W%k%W%m%0%i%`$b%3%s%Q%$%k$9$k$h$&$K$7$^$9!#L5;XDj;~$O(B `no' $B$G(B
$B$9!#%3%s%Q%$%k$7$F$b!"%5%s%W%k%W%m%0%i%`$O2?=h$K$b%$%s%9%H!<%k$5$l(B
$B$^$;$s!#(B
`--enable-largefile'
2GB $B$rD6$($k!"Bg$-$J%U%!%$%k$r07$($k$h$&$K$7$^$9!#%7%9%F%`B&$GBP1~(B
$B$7$F$$$J$$$H!";XDj$7$F$b8z2L$O$"$j$^$;$s!#L5;XDj;~$O(B `yes' $B$G$9!#(B

782
lib/ebu/Makefile Normal file
View file

@ -0,0 +1,782 @@
# Makefile.in generated by automake 1.10.3 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
pkgdatadir = $(datadir)/ebu
pkglibdir = $(libdir)/ebu
pkgincludedir = $(includedir)/ebu
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure $(top_srcdir)/po-eb/Makefile.in \
$(top_srcdir)/po-ebutils/Makefile.in AUTHORS COPYING ChangeLog \
INSTALL NEWS config.guess config.sub depcomp install-sh \
ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/in6addr.m4 $(top_srcdir)/m4/largefile.m4 \
$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/sockaddrin6.m4 \
$(top_srcdir)/m4/sockinttypes.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = po-eb/Makefile po-ebutils/Makefile
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(appendixdir)" "$(DESTDIR)$(sysconfdir)"
appendixDATA_INSTALL = $(INSTALL_DATA)
sysconfDATA_INSTALL = $(INSTALL_DATA)
DATA = $(appendix_DATA) $(sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = ebu libebutils ebappendix ebfont ebinfo ebrefile \
ebstopcode ebzip doc po-eb po-ebutils m4 samples
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run aclocal-1.10
AMTAR = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run autoconf
AUTOHEADER = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run autoheader
AUTOMAKE = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run automake-1.10
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2 -fopenmp
CPP = gcc -E
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DLLTOOL = false
DSYMUTIL =
DUMPBIN =
EBCONF_EBINCS = -I$(includedir)
EBCONF_EBLIBS = -L$(libdir) -lebu
EBCONF_INTLINCS =
EBCONF_INTLLIBS =
EBCONF_ZLIBINCS =
EBCONF_ZLIBLIBS = -lz
EB_VERSION_MAJOR = 4
EB_VERSION_MINOR = 5
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /usr/bin/grep -E
ENABLE_EBNET = yes
ENABLE_LIBDEFLATE = no
ENABLE_NLS = yes
ENABLE_PTHREAD = no
EXEEXT =
FGREP = /usr/bin/grep -F
GREP = /usr/bin/grep
ICONVINCS =
ICONVLIBS =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
INTLINCS =
INTLLIBS =
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS =
LIBEB_VERSION_INFO = 17:0:0
LIBOBJS =
LIBS = -lnsl
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAILING_ADDRESS = kzhr@d1.dion.ne.jp
MAKEINFO = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run makeinfo
MANIFEST_TOOL = :
MKDIR_P = /usr/bin/mkdir -p
MSGFMT = :
MSGMERGE = msgmerge
NM = /usr/bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
OPENMP_CFLAGS = -fopenmp
OTOOL =
OTOOL64 =
PACKAGE = ebu
PACKAGE_BUGREPORT =
PACKAGE_NAME = ebu
PACKAGE_STRING = ebu 4.5-20200413
PACKAGE_TARNAME = ebu
PACKAGE_URL =
PACKAGE_VERSION = 4.5-20200413
PATH_SEPARATOR = :
PERL = /usr/bin/perl
PTHREAD_CFLAGS =
PTHREAD_CPPFLAGS =
PTHREAD_LDFLAGS =
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/bash
STRIP = strip
VERSION = 4.5-20200413
XGETTEXT = :
ZLIBDEPS =
ZLIBINCS =
ZLIBLIBS = -lz
abs_builddir = /mnt/d/files/projects/ebclient/lib/ebu
abs_srcdir = /mnt/d/files/projects/ebclient/lib/ebu
abs_top_builddir = /mnt/d/files/projects/ebclient/lib/ebu
abs_top_srcdir = /mnt/d/files/projects/ebclient/lib/ebu
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = $(SHELL) /mnt/d/files/projects/ebclient/lib/ebu/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = $(datadir)/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /usr/bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
pkgdocdir = ${datadir}/ebu/doc
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
runstatedir = ${localstatedir}/run
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix =
top_builddir = .
top_srcdir = .
ACLOCAL_AMFLAGS = -I m4
SAMPLES_SUBDIR =
#SAMPLES_SUBDIR = samples
SUBDIRS = ebu libebutils ebappendix ebfont ebinfo ebrefile ebstopcode ebzip \
doc po-eb po-ebutils m4 $(SAMPLES_SUBDIR)
EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 move-if-change \
ebu.conf.in misc/ebfixlog misc/ebdump README.org
CLEANFILES = ebu.conf
appendixdir = $(pkgdatadir)/appendix
appendix_DATA =
sysconf_DATA = ebu.conf
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
po-eb/Makefile: $(top_builddir)/config.status $(top_srcdir)/po-eb/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
po-ebutils/Makefile: $(top_builddir)/config.status $(top_srcdir)/po-ebutils/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool config.lt
install-appendixDATA: $(appendix_DATA)
@$(NORMAL_INSTALL)
test -z "$(appendixdir)" || $(MKDIR_P) "$(DESTDIR)$(appendixdir)"
@list='$(appendix_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(appendixDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appendixdir)/$$f'"; \
$(appendixDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appendixdir)/$$f"; \
done
uninstall-appendixDATA:
@$(NORMAL_UNINSTALL)
@list='$(appendix_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(appendixdir)/$$f'"; \
rm -f "$(DESTDIR)$(appendixdir)/$$f"; \
done
install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
@list='$(sysconf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
done
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(sysconf_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
am__remove_distdir=: \
am__skip_length_check=: \
distdir) \
|| exit 1; \
fi; \
done
-find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(appendixdir)" "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr \
distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am: install-appendixDATA
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-appendixDATA uninstall-sysconfDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
distclean distclean-generic distclean-hdr distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-appendixDATA install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip install-sysconfDATA installcheck installcheck-am \
installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-appendixDATA \
uninstall-sysconfDATA
ebu.conf: ebu.conf.in Makefile
rm -f $@
sed -e 's;\@VERSION\@;$(VERSION);' \
-e 's;\@EBCONF_EBINCS\@;$(EBCONF_EBINCS);' \
-e 's;\@EBCONF_EBLIBS\@;$(EBCONF_EBLIBS);' \
-e 's;\@EBCONF_ZLIBINCS\@;$(EBCONF_ZLIBINCS);' \
-e 's;\@EBCONF_ZLIBLIBS\@;$(EBCONF_ZLIBLIBS);' \
-e 's;\@ENABLE_PTHREAD\@;$(ENABLE_PTHREAD);' \
-e 's;\@PTHREAD_CPPFLAGS\@;$(PTHREAD_CPPFLAGS);' \
-e 's;\@PTHREAD_CFLAGS\@;$(PTHREAD_CFLAGS);' \
-e 's;\@PTHREAD_LDFLAGS\@;$(PTHREAD_LDFLAGS);' \
-e 's;\@ENABLE_NLS\@;$(ENABLE_NLS);' \
-e 's;\@EBCONF_INTLINCS\@;$(EBCONF_INTLINCS);' \
-e 's;\@EBCONF_INTLLIBS\@;$(EBCONF_INTLLIBS);' \
-e 's;\@ENABLE_EBNET\@;$(ENABLE_EBNET);' \
$(srcdir)/$@.in > $@.tmp
cp $@.tmp $@
chmod 644 $@
rm -f $@.tmp
gttest.mo: gttest.po
$(MSGFMT) -o gttest.mo gttest.po
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

41
lib/ebu/Makefile.am Normal file
View file

@ -0,0 +1,41 @@
ACLOCAL_AMFLAGS = -I m4
if ENABLE_SAMPLES
SAMPLES_SUBDIR = samples
else
SAMPLES_SUBDIR =
endif
SUBDIRS = ebu libebutils ebappendix ebfont ebinfo ebrefile ebstopcode ebzip \
doc po-eb po-ebutils m4 $(SAMPLES_SUBDIR)
EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 move-if-change \
ebu.conf.in misc/ebfixlog misc/ebdump README.org
CLEANFILES = ebu.conf
appendixdir = $(pkgdatadir)/appendix
appendix_DATA =
sysconf_DATA = ebu.conf
ebu.conf: ebu.conf.in Makefile
rm -f $@
sed -e 's;\@VERSION\@;$(VERSION);' \
-e 's;\@EBCONF_EBINCS\@;$(EBCONF_EBINCS);' \
-e 's;\@EBCONF_EBLIBS\@;$(EBCONF_EBLIBS);' \
-e 's;\@EBCONF_ZLIBINCS\@;$(EBCONF_ZLIBINCS);' \
-e 's;\@EBCONF_ZLIBLIBS\@;$(EBCONF_ZLIBLIBS);' \
-e 's;\@ENABLE_PTHREAD\@;$(ENABLE_PTHREAD);' \
-e 's;\@PTHREAD_CPPFLAGS\@;$(PTHREAD_CPPFLAGS);' \
-e 's;\@PTHREAD_CFLAGS\@;$(PTHREAD_CFLAGS);' \
-e 's;\@PTHREAD_LDFLAGS\@;$(PTHREAD_LDFLAGS);' \
-e 's;\@ENABLE_NLS\@;$(ENABLE_NLS);' \
-e 's;\@EBCONF_INTLINCS\@;$(EBCONF_INTLINCS);' \
-e 's;\@EBCONF_INTLLIBS\@;$(EBCONF_INTLLIBS);' \
-e 's;\@ENABLE_EBNET\@;$(ENABLE_EBNET);' \
$(srcdir)/$@.in > $@.tmp
cp $@.tmp $@
chmod 644 $@
rm -f $@.tmp
gttest.mo: gttest.po
$(MSGFMT) -o gttest.mo gttest.po

782
lib/ebu/Makefile.in Normal file
View file

@ -0,0 +1,782 @@
# Makefile.in generated by automake 1.10.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure $(top_srcdir)/po-eb/Makefile.in \
$(top_srcdir)/po-ebutils/Makefile.in AUTHORS COPYING ChangeLog \
INSTALL NEWS config.guess config.sub depcomp install-sh \
ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/in6addr.m4 $(top_srcdir)/m4/largefile.m4 \
$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/sockaddrin6.m4 \
$(top_srcdir)/m4/sockinttypes.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = po-eb/Makefile po-ebutils/Makefile
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(appendixdir)" "$(DESTDIR)$(sysconfdir)"
appendixDATA_INSTALL = $(INSTALL_DATA)
sysconfDATA_INSTALL = $(INSTALL_DATA)
DATA = $(appendix_DATA) $(sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = ebu libebutils ebappendix ebfont ebinfo ebrefile \
ebstopcode ebzip doc po-eb po-ebutils m4 samples
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
EBCONF_EBINCS = @EBCONF_EBINCS@
EBCONF_EBLIBS = @EBCONF_EBLIBS@
EBCONF_INTLINCS = @EBCONF_INTLINCS@
EBCONF_INTLLIBS = @EBCONF_INTLLIBS@
EBCONF_ZLIBINCS = @EBCONF_ZLIBINCS@
EBCONF_ZLIBLIBS = @EBCONF_ZLIBLIBS@
EB_VERSION_MAJOR = @EB_VERSION_MAJOR@
EB_VERSION_MINOR = @EB_VERSION_MINOR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_EBNET = @ENABLE_EBNET@
ENABLE_LIBDEFLATE = @ENABLE_LIBDEFLATE@
ENABLE_NLS = @ENABLE_NLS@
ENABLE_PTHREAD = @ENABLE_PTHREAD@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
ICONVINCS = @ICONVINCS@
ICONVLIBS = @ICONVLIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLINCS = @INTLINCS@
INTLLIBS = @INTLLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBEB_VERSION_INFO = @LIBEB_VERSION_INFO@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAILING_ADDRESS = @MAILING_ADDRESS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_CPPFLAGS = @PTHREAD_CPPFLAGS@
PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
ZLIBDEPS = @ZLIBDEPS@
ZLIBINCS = @ZLIBINCS@
ZLIBLIBS = @ZLIBLIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pkgdocdir = @pkgdocdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I m4
@ENABLE_SAMPLES_FALSE@SAMPLES_SUBDIR =
@ENABLE_SAMPLES_TRUE@SAMPLES_SUBDIR = samples
SUBDIRS = ebu libebutils ebappendix ebfont ebinfo ebrefile ebstopcode ebzip \
doc po-eb po-ebutils m4 $(SAMPLES_SUBDIR)
EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 move-if-change \
ebu.conf.in misc/ebfixlog misc/ebdump README.org
CLEANFILES = ebu.conf
appendixdir = $(pkgdatadir)/appendix
appendix_DATA =
sysconf_DATA = ebu.conf
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
po-eb/Makefile: $(top_builddir)/config.status $(top_srcdir)/po-eb/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
po-ebutils/Makefile: $(top_builddir)/config.status $(top_srcdir)/po-ebutils/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool config.lt
install-appendixDATA: $(appendix_DATA)
@$(NORMAL_INSTALL)
test -z "$(appendixdir)" || $(MKDIR_P) "$(DESTDIR)$(appendixdir)"
@list='$(appendix_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(appendixDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appendixdir)/$$f'"; \
$(appendixDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appendixdir)/$$f"; \
done
uninstall-appendixDATA:
@$(NORMAL_UNINSTALL)
@list='$(appendix_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(appendixdir)/$$f'"; \
rm -f "$(DESTDIR)$(appendixdir)/$$f"; \
done
install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
@list='$(sysconf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
done
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(sysconf_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
am__remove_distdir=: \
am__skip_length_check=: \
distdir) \
|| exit 1; \
fi; \
done
-find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(appendixdir)" "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr \
distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am: install-appendixDATA
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-appendixDATA uninstall-sysconfDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
install-strip
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
distclean distclean-generic distclean-hdr distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-appendixDATA install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip install-sysconfDATA installcheck installcheck-am \
installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-appendixDATA \
uninstall-sysconfDATA
ebu.conf: ebu.conf.in Makefile
rm -f $@
sed -e 's;\@VERSION\@;$(VERSION);' \
-e 's;\@EBCONF_EBINCS\@;$(EBCONF_EBINCS);' \
-e 's;\@EBCONF_EBLIBS\@;$(EBCONF_EBLIBS);' \
-e 's;\@EBCONF_ZLIBINCS\@;$(EBCONF_ZLIBINCS);' \
-e 's;\@EBCONF_ZLIBLIBS\@;$(EBCONF_ZLIBLIBS);' \
-e 's;\@ENABLE_PTHREAD\@;$(ENABLE_PTHREAD);' \
-e 's;\@PTHREAD_CPPFLAGS\@;$(PTHREAD_CPPFLAGS);' \
-e 's;\@PTHREAD_CFLAGS\@;$(PTHREAD_CFLAGS);' \
-e 's;\@PTHREAD_LDFLAGS\@;$(PTHREAD_LDFLAGS);' \
-e 's;\@ENABLE_NLS\@;$(ENABLE_NLS);' \
-e 's;\@EBCONF_INTLINCS\@;$(EBCONF_INTLINCS);' \
-e 's;\@EBCONF_INTLLIBS\@;$(EBCONF_INTLLIBS);' \
-e 's;\@ENABLE_EBNET\@;$(ENABLE_EBNET);' \
$(srcdir)/$@.in > $@.tmp
cp $@.tmp $@
chmod 644 $@
rm -f $@.tmp
gttest.mo: gttest.po
$(MSGFMT) -o gttest.mo gttest.po
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

535
lib/ebu/NEWS Normal file
View file

@ -0,0 +1,535 @@
バージョン 4.4.3 における主な変更点:
* バージョン4.4.2で、共有ライブラリのバージョンが正しくなかったため、
本バージョンで修正した。
* 細かな不具合を修正した。
バージョン 4.4.2 における主な変更点:
* 図版メニューに関する処理で、初期化処理が一部抜けていたのを修正した。
* ebzip 伸長時に、正常終了時も終了コードが1になってしまう不具合を修正
した。
* ebzip テストモード時も、ファイルのコピーが実行されてしまう不具合を
修正した。
* ebzip のメモリ開放忘れを直した。
バージョン 4.4.1 における主な変更点:
* 画像、音声データを扱う際に、データが格納されているファイルの大きさが
2GB を正しく扱えなかったので修正した。
バージョン 4.4 における主な変更点:
* 2GB を超える大きさのファイルを扱えるようにした。ただし、システム側で
対応していることが前提条件。
* EBZIP形式の圧縮ファイルで、4294967296〜1099511627775バイト (4GB〜1TB)
のファイルの表現方法を規定した。ebzip, ebunzip はこの規定に沿って圧縮
および伸張を行なう。
* ebzip, ebunzip がディレクトリ作成に失敗したとき、何もエラーメッセージ
を出さずに終了する不具合を修正した。
バージョン 4.3.4 における主な変更点:
* 環境によっては、ebinfo の出力する副本の題名が文字化けするのを修正した。
* 注: ライブラリ本体には変更がないので、共有ライブラリのバージョンは更新
してしない。
バージョン 4.3.3 における主な変更点:
* Cygwin, MinGW で DLL を作成できるようにした。
* Windows で ebzipinfo が異常終了する不具合を修正した。
バージョン 4.3.2 における主な変更点:
* バージョン 4.3.1 で、共有ライブラリの番号付けが間違っていたので修正した。
* ebinfo の日本語メッセージに、空白文字が抜けているものがあったので修正した。
バージョン 4.3.1 における主な変更点:
* 動画ファイル名に英大文字が使われると、動画データを読み込めない不具合
を修正した。
* 電子ブックリーダー Panasonic KX-EBP2 付属品に対応した。
* ebnet でバッファオーバーランが起きる不具合を修正した。
バージョン 4.3 における主な変更点:
* EPWING で複数の副本がディレクトリを共有している場合、正しくアクセス
できない不具合を修正した。
* `ebunzip --test' が、電子ブックの本文ファイルを上書きしてしまう不具合
を修正した。
* ebappendix が、`catalogs.app' を読み込んでも電子ブック形式の appendix
を生成してしまう不具合を修正した。
* 参照先付きカラー図版に対応した。
API として、eb_have_image_menu() と eb_image_menu() が追加された。
テキストのフックとして、EB_HOOK_BEGIN_IMAGE_PAGE, EB_HOOK_END_IMAGE_PAGE,
EB_HOOK_BEGIN_CLICKABLE_AREA, EB_HOOK_END_CLICKABLE_AREA の 4つが追加
された。
バージョン 4.2.2 における主な変更点:
* 4.2.1 で混入した、一部の EPWING が正しく扱えない不具合を修正した。
* eb.conf の EBCONF_ENABLE_NLS の値が正しくセットされない不具合を修正
した。
* 音声ファイルの取り出しがうまくいかない不具合を終始した。
* 一部の Linux 環境で configure 時に NLS (Native/National Language
Support) が有効にならない不具合を修正した。
* 細かな不具合をいくつか修正した。
バージョン 4.2.1 における主な変更点:
* 不具合をいくつか修正した。
バージョン 4.2 における主な変更点:
* クロス検索に対応した。
関数 eb_have_cross_search(), eb_search_cross() をライブラリに追加した。
また、ebinfo は、クロス検索の情報を出力するようになった。
* 動画ファイル名の絶対パス名を返す関数 eb_compose_movie_path_name() を
ライブラリに追加した。
* ebrefile は、カタログファイルを上書きするようにした。
上書き前のカタログファイルは、".old" という接尾子の付いたファイル名で
保存される。
* zlib を添付しないようにした。
configure から --with-included-zlib オプションを削除した。
* 不具合をいくつか修正した。
バージョン 4.1.3 における主な変更点:
* バージョン 4.1.2 で、共有ライブラリの番号付けが間違っていたので修正した。
* `make install' が失敗する不具合を修正した。
バージョン 4.1.2 における主な変更点:
* 特定の書籍で、EB ライブラリが書籍に載っている単語を検索できない
不具合を修正した。
* FreeBSD-5.3-RELEASE で make が失敗する不具合を修正した。
* Windows 環境において、ebzip コマンドの起動時のコマンド名 (ebunzip.exe,
ebzipinfo.exe など) をもとに、正しく動作を決定できない不具合を修正
した。
バージョン 4.1.1 における主な変更点:
* ユーティリティコマンドで、引数を取る長いオプション (例: ebzip の
--level) に対して引数を渡さないと、コマンドが異常終了する不具合を
修正した。
* eb_write_text_byte2() がおかしなデータを書き込む不具合を修正した。
* ドキュメントの HTML ファイルのスタイルを変更した。
バージョン 4.1 における主な変更点:
* BSD ライセンスを採用するようにした。
* ebfont が PNG 形式の画像ファイルを生成できるようにした。
ebfont の --image-format オプションに `png' を指定できるようにした。
* ライブラリに eb_narrow_font_png_size(), eb_wide_font_png_size(),
eb_bitmap_to_png() を加えた。
* eb_bitmap_to_xbm(), eb_bitmap_to_xpm(), eb_bitmap_to_gif(),
eb_bitmap_to_bmp() は EB_Error_Code を返すようにた。
* ライブラリが、非圧縮ブロックデータのキャッシュをより効率的に行う
ようにした。
* `ebzip' が START/HONMON ファイルの部分圧縮に対応した。
これにより、前方一致検索が速くなった。
* 日本語ドキュメントを HTML 形式で配布するようにした。
* 英語のドキュメントを削除した。
バージョン 4.0.1 における主な変更点:
* ヘッダファイル内の EB_P, ZIO_P マクロの定義を修正した。
* `ebzipinfo' は `--skip-content movie' オプションを指定しない限り、
動画ファイルの情報も表示するようにした。
* `ebzip', `ebunzip' の進行状況メッセージは、標準出力ではなく標準エラー
出力に表示するようにした。
バージョン 4.0 における主な変更点:
* EB_BookList 関連の API を改良した。
* EB_ERR_UNBOUND_BOOKLIST, EB_ERR_NO_SUCH_BOOK という 2 つのエラー
コードを追加した。
* `eb3.m4' を `eb4.m4' に改名した。
* `configure' に `--enable-ebnet' オプションを追加した。
* `eb/flags.h' をインストールするようにした。
このファイルは、`eb/defs.h' から自動的に include される。
* 重大および軽度の不具合をいくつか修正した。
バージョン 4.0beta3 における主な変更点:
* EUC-JP 以外の日本語のエンコーディングに対応した。
* Windows 対応のためのコードをいくつか付加した。
Windows 上で EB ライブラリのビルドを行うには、`eb-win32' パッケージ
を使用して下さい。
* `ebstopcode' に `--text-position' (`-p') オプションを追加した。
バージョン 4.0beta2 における主な変更点:
* 検索メソッドの重大な不具合を修正した。
バージョン 4.0beta1 における主な変更点:
* `ebstopchk' を `ebstopcode' に改名した。
コマンドの `--stop-code' オプションも `--code' に改名した。
* `ebappendix' の `--case', `--suffix' オプションを削除した。
* `ebappendix' の日本語版ドキュメントを用意した。
* `ebinfo' に `--book-list' オプションを追加した。
* `ebdump', `ebfixlog' を `misc' サブディレクトリに入れた。
* 不具合をいくつか修正した。
バージョン 4.0beta0 における主な変更点:
* 遠隔アクセスに対応した。
* `ebstopchk' コマンドを追加した。
バージョン 3.3.2 における主な変更点:
* 共有ライブラリのバージョン番号を修正した。
* 「日英仏辞典」(YRRS-059) に対応した。
バージョン 3.3.1 における主な変更点:
* EPWING 版「ジーニアス英和大辞典」に対応した。
* 複合検索の処理の不具合を修正した。
* デバッグモードの不具合を修正した。
バージョン 3.3 における主な変更点:
* eb_read_binary_mpeg() の不具合を修正した。
バージョン 3.3beta3 における主な変更点:
* 複合検索を修正した。
* 軽度の不具合をいくつか修正した。
バージョン 3.3beta2 における主な変更点:
* 重大および軽度の不具合をいくつか修正した。
* `eb3.m4' は `$(datadir)/aclocal' にインストールするようにした。
バージョン 3.3beta1 における主な変更点:
* 不具合をいくつか修正した。
バージョン 3.3beta0 における主な変更点:
* EPWING のファイル名や圧縮タイプを見分けるコードを大幅に書き改めた。
* 関数 eb_multi_title() を追加した。
この関数は、特定の複合検索の題名を取得する。この関数の使用によって、
`ebinfo' コマンドで `--multi-search' (`-m') を指定した際に、複合検索
の題名を表示するようになった。
* `ebrefile' の不具合を修正した。
* インライン画像に対応するため、テキストデータへのフックを 2 種類追加
した。
バージョン 3.2.3 における主な変更点:
* PCM 音声データの処理における不具合を修正した。
* テキストのフックを 2 種類追加した。
バージョン 3.2.2 における主な変更点:
* appendix の処理における不具合を修正した。
* gettext のメッセージカタログを修正した。
バージョン 3.2.1 における主な変更点:
* テキストの読み込みルーチンを修正した。
* zlib-1.1.4 を取り込んだ。
バージョン 3.2 における主な変更点:
* 特になし。
バージョン 3.2beta3 における主な変更点:
* インストールの際に起こる不具合をいくつか修正した。
バージョン 3.2beta2 における主な変更点:
* 環境変数 EB_DEBUG が定義されていると、EB ライブラリがデバッグ
メッセージを出力するようにした。
`configure' の `--enable-debug' オプションを削除した。
* EBZIP 圧縮形式データの伸長における致命的な不具合を修正した。
バージョン 3.2beta1 における主な変更点:
* `ebzip' の最高圧縮レベルを 3 から 5 に変更した。
* 不具合をいくつか修正した。
バージョン 3.2beta0 における主な変更点:
* eb_backward_text() を実装し、eb_forward_text() を改良した。
* EB ライブラリのプログラミングドキュメント (日本語版) を復活させた。
* サンプルプログラムを復活させた。
バージョン 3.1 における主な変更点:
* 圧縮された S-EBXA へのサポートにおける不具合を修正した。
バージョン 3.1beta1 における主な変更点:
* デバッグコードを付加した。
このコードは `configure --enable-debug' とすると、有効になる。
* eb_initialize_all_subbooks() を eb_load_all_subbooks() に改名した。
eb_initialize_all_appendix_subbooks() も eb_load_all_appendix_subbooks()
に改名した。
後方互換性のため、これまでの名前は CPP マクロとして定義するように
した。
* "DUDEN" (EBG) への対応が復活した。
* ルートディレクトリにマウントされた CD-ROM の処理における不具合を
修正した。
* EB ライブラリ内の初期化および後始末ルーチンのオーバーホールを
行った。
* 軽度の不具合をいくつか修正した。
バージョン 3.1beta0 における主な変更点:
* 圧縮された S-EBXA に対応した。
* ソニーデータディスクマン DP-S1000 付属の「日本大百科全書」に対応した。
バージョン 3.0.1 における主な変更点:
* 不具合をいくつか修正した。
バージョン 3.0 における主な変更点:
* EB の LANGUAGE データへの対応をやめた。
バージョン 3.0beta1 における主な変更点:
* `ebrefile' を C で書き直した。
日本語のメッセージカタログも用意した。
* 不具合をいくつか修正した。
バージョン 3.0beta0 における主な変更点:
* GNU gettext 0.10.36 の libintl に対応した。
本パッケージのユーティリティツール群は、libiconv が利用可能なら
リンクするようになった。
`configure' に `--with-iconv-includes', `--with-iconv-libraries'
オプションを追加した。
* libintl のソースコードを削除した。
`configure' の `--with-included-gettext' オプションも削除した。
libintl がシステムになければ、NLS (Native/National Language Support)
は無効になる。
* EPWING および EB のモノクロ画像データに対応した。
* `ebzip' は動画、画像、音声の各データファイルに対応するようになった。
`ebzip' に `--skip-content' (`-s') オプションを追加した。
* 軽度の不具合をたくさん修正した。
バージョン 3.0alpha4 における主な変更点:
* EPWING の動画データ、カラー画像データに対応した。
* EB ライブラリを利用したアプリケーション向けに、M4 マクロファイル
`eb3.m4' を用意した。(Autoconf 2.49 が必要。)
バージョン 3.0alpha3 における主な変更点:
* テキストのフック関連の API を改めた。
バージョン 3.0alpha2 における主な変更点:
* たくさんの不具合を修正した。
バージョン 3.0alpha1 における主な変更点:
* EPWING V6 の圧縮形式に対応したい。
* ファイル名やディレクトリ名における、大文字/小文字や接尾子の一貫性
の欠如を無視するようにした。
* `ebzip' の `--suffix', `--case' オプションを削除した。
* フォント関連の API を若干ながら変更した。
* 軽度の不具合を、かなり色々と修正した。
バージョン 3.0alpha0 における主な変更点:
* 複合検索に対応した。
* 条件検索に対応した。
* GNU gettext を用いた NLS (Native/National Language Support)。
日本語のメッセージカタログを用意した。
* 実験的ながら Pthread に対応した。
`configure' に `--enable-pthreads' オプションを追加した。
* `configure' が、自動的に zlib を見つけ出すようにした。
* API を変更した。
バージョン 2.x の API とは、非互換な点がいくつかある。
* 軽度の不具合をたくさん修正した。
バージョン 2.3.7 における主な変更点:
* "DUDEN Die sinn-und sachverwandten Worter" (EBG) と "DUDEN Das
Fremdworterbuch" に対応した。
バージョン 2.3.6 における主な変更点:
* 「日本語語彙大系」 (EPWING, 岩波書店) で顕在化する不具合を修正した。
* "EDICT" (JIS X 4081, フリーの辞書) で顕在化する不具合を修正した。
バージョン 2.3.5 における主な変更点:
* 特になし。
バージョン 2.3.4 における主な変更点:
* EPWING の伸長ルーチンの不具合を修正した。
* 軽度の不具合をいくつか修正した。
バージョン 2.3.3 における主な変更点:
* 共有ライブラリのバージョン番号を修正した。
バージョン 2.3.2 における主な変更点:
* 軽度な不具合を修正した。
(バージョン 2.3.1 はリリースしていない。)
バージョン 2.3 における主な変更点:
* 特になし。
バージョン 2.3beta3 における主な変更点:
* 特になし。
バージョン 2.3beta2 における主な変更点:
* 特になし。
バージョン 2.3beta1 における主な変更点:
* 実験的ながら EBXA-C に対応した。
* 実験的ながら、区切り文字 (stop-code) の自動検出に対応した。
バージョン 2.3beta0 における主な変更点:
* EPWING 圧縮形式で圧縮された CD-ROM 書籍に対応した。
* `ebzip' の情報通知メッセージを変更した。
* `ebrefile' の不具合を修正した。
`ebrefile' は `ebzip' と同じ順序でカタログファイルを探しに行って
いなかった。
バージョン 2.2.1 における主な変更点:
* samples と samples-ja を統合した。
* `configure' に `--enable-samples' オプションを追加した。
* DOS, Windows, OS/2 への対応を改善した。
バージョン 2.2 における主な変更点:
* EB ライブラリのドキュメントを追加した。
バージョン 2.1.2 における主な変更点:
* 共有ライブラリのバージョン番号を修正した。
* FreeBSD-ELF に対応した libtool を使うようにした。
バージョン 2.1.1 における主な変更点:
* Windows VC++ 向けのコードをいくつか追加した。
* 不具合を修正した。
バージョン 2.1 における主な変更点:
* 不具合を修正した。
バージョン 2.1beta2 における主な変更点:
* `ebzip' に圧縮レベル 3 を新設した。
* 新たに `ebrefile' コマンドを追加した。
バージョン 2.1beta1 における主な変更点:
* 不具合を修正した。
バージョン 2.1beta0 における主な変更点:
* `ebfont' のドキュメントを追加した。
* 日本語のドキュメントを追加した。
* `configure' に `--with-zlib', `--with-zlib-includes',
`--with-zlib-libraries' オプションを追加した。
* CD-ROM 書籍の圧縮/伸長に対応した。
* 新たに `ebzip' コマンドを追加した。
* `ebappendix' の `--filename-case' オプションを `--case' に改名した。
* `ebappendix' の `--no-catalogs' オプションを再追加した。
* `ebfont' に `--subbook' (`-S') オプションを足した。
* `ebfont' が生成するディレクトリの構造を変更した。
* zlib ソースコードを取り込むようにした。
* 不具合を修正した。
バージョン 2.0.3 における主な変更点:
* 不具合を修正した。
バージョン 2.0.2 における主な変更点:
* 不具合を修正した。
バージョン 2.0.1 における主な変更点:
* 特になし。
バージョン 2.0 における主な変更点:
* 不具合を修正した。
バージョン 2.0beta1 における主な変更点:
* `ebappendix' のオプション `--filename-cases' を `--filename-case' に
改名した。
* 不具合を修正した。
バージョン 2.0beta0 における主な変更点:
* GNU libtool の利用により、EB ライブラリの共有ライブラリ版をコンパイ
ルできるようにした。
* 関数のインターフェースを変更した。
EB ライブラリ 1.0.x と 2.0 で、いくつか非互換な箇所が生じた。
* `ebinfo' の Texinfo ドキュメントを追加した。
* JIS X 4081-1996 のほとんどの記述に対応した。
* ソースコード配布パッケージのディレクトリ構成を変更した。
* `ebappendix' の `--no-catalogs' オプションを削除した。
* 不具合を修正した。
バージョン 1.0.6 における主な変更点:
* 不具合を修正した。
バージョン 1.0.5 における主な変更点:
* 不具合を修正した。
バージョン 1.0.4 における主な変更点:
* 特になし。
バージョン 1.0.3 における主な変更点:
* "Concise Oxford dicitionary" に対応した。
* 複数のアーキテクチャ上でのコンパイルに関する Makefile.am の不具合
を修正した。
複数の種類のコンピュータ上で、同時に本パッケージをコンパイルできる
ようになった。
* ビットマップの変換関数のインターフェースを変更した。
* 不具合を修正した。
バージョン 1.0.2 における主な変更点:
* EB ライブラリに関数をいくつか追加した。
これらの関数は、CD-ROM 書籍が定義している外字の画像ファイルを生成
する。対応している画像形式は、XBM, XPM と GIF。
* 不具合を修正した。
バージョン 1.0.1 における主な変更点:
* JIS X 4081-1996 に記されている表示制御記述子を認識するようにした。
* いくつかの EPWING 書籍で、漢字による前方一致検索ができるようにした。
* EPWING 版リーダーズ英和辞典に対応した。
* 不具合を修正した。
バージョン 1.0 における主な変更点:
* 不具合を修正した。
バージョン 1.0beta2 における主な変更点:
* 不具合を修正した。
バージョン 1.0beta1 における主な変更点:
* appendix データファイルの形式を変更した。
* 不具合を修正した。

11
lib/ebu/README Normal file
View file

@ -0,0 +1,11 @@
EB Library with UTF-8 support
http://green.ribbon.to/~ikazuhiro/dic/ebu.html
Kazuhiro Ito <kzhr@d1.dion.ne.jp>
JIS X 4081 UTF-8 extension に準拠した書籍に対応する、EB Library の
改造版です。
ドキュメント類は EB Library から更新していません。
使用方法等は配布ページを参照してください。
EB Library の README は README.org にあります。

71
lib/ebu/README.org Normal file
View file

@ -0,0 +1,71 @@
EB $B%i%$%V%i%j(B
CD-ROM $B=q@R$K%"%/%;%9$9$k$?$a$N(B C $B$N%i%$%V%i%j(B
EB $B%i%$%V%i%j$O(B CD-ROM $B=q@R$K%"%/%;%9$9$k$?$a$N(B C $B$N%i%$%V%i%j$G$9!#(B
UNIX $B7O(B OS $B$*$h$S(B Windows (2000$B0J9_(B) $B$N%7%9%F%`>e$GF0:n$5$;$k$3$H$,$G(B
$B$-$^$9!#(B($B$?$@$7!"(BWindows $B$G%3%s%Q%$%k$9$k$K$O!"JL%Q%C%1!<%8$,I,MW$G$9!#(B)
EB $B%i%$%V%i%j$O(B EB, EBG, EBXA, EBXA-C, S-EBXA $B$*$h$S(B EPWING $B7A<0$N(B
CD-ROM $B=q@R$KBP1~$7$F$$$^$9!#$3$l$i$O!"<g$KF|K\$GHNGd$5$l$F$$$k<-=q$K(B
$B;H$o$l$F$$$^$9!#(BCD-ROM $B=q@R<+BN$O(B ISO 9660 $B7A<0$K$J$C$F$$$^$9$N$G!"B>(B
$B$N(B ISO 9660 $B7A<0$HF1$8MWNN$G%^%&%s%H$9$k$3$H$,$G$-$^$9!#(B
$B$^$?!"(BEB $B%i%$%V%i%j$O4v$D$+$N%f!<%F%j%F%#%3%^%s%I$bDs6!$7$F$$$^$9!#(B
ebappendix appendix ($BIUO?(B) $B%G!<%?$r@07A$9$k(B
ebfont CD-ROM $B=q@RFb$N30;z$N%U%)%s%H%G!<%?$r<h$j=P$9(B
ebinfo CD-ROM $B=q@R$K4X$9$k>pJs$r=PNO$9$k(B
ebrefile CD-ROM $B=q@R$N%+%?%m%0%U%!%$%k$r9=@.$7D>$9(B
ebstopcode CD-ROM $B=q@R$NK\J8$N6h@Z$j%3!<%I$r8!::$9$k(B
ebunzip CD-ROM $B=q@R$r?-D9$9$k(B
ebzip CD-ROM $B=q@R$r05=L$9$k(B
ebzipinfo CD-ROM $B=q@R$N05=L>pJs$r=PNO$9$k(B
$B%P!<%8%g%s(B 4.0 $B$+$i!"(BEB $B%i%$%V%i%j$OB>$N%[%9%H$N=q@R$K%"%/%;%9$G$-$k(B
$B$h$&$K$J$j$^$7$?!#1s3V%"%/%;%9MQ$N<1JL;R$r;H$&$3$H$G!"B>%[%9%H>e$N(B
CD-ROM $B=q@R$r;XDj$9$k$3$H$,$G$-$^$9!#$3$N<1JL;R$O!"<!$N$h$&$J7A<0$r$H(B
$B$j$^$9!#(B
ebnet://<$B%[%9%H(B>:<$B%]!<%H(B>/<$B=q@RL>(B> (CD-ROM $B=q@RK\BN(B)
ebnet://<$B%[%9%H(B>:<$B%]!<%H(B>/<$B=q@RL>(B>.app ($BIUO?%Q%C%1!<%8(B)
<$B%[%9%H(B> $B$O1s3V%[%9%H$N(B IP $B%"%I%l%9$b$7$/$O%[%9%HL>$G$9!#$?$@$7!"(BIPv6
$B%"%I%l%9$r;XDj$9$k>l9g$O!"%"%I%l%9$r(B `[' $B$H(B `]' $B$G0O$`I,MW$,$"$j$^$9!#(B
<$B%]!<%H(B> $B$O!"$=$N%[%9%H$,BT$A<u$1$F$$$k%]!<%H$NHV9f$G$9!#%[%9%H$,BT$A(B
$B<u$1$F$$$k%]!<%H$,I8=`$N(B 22010 $BHV$G$"$l$P!"(B`:<$B%]!<%H(B>' $B$NItJ,$O>JN,2D(B
$BG=$G$9!#(B
$B0J2<$KNc$r5-$7$^$9!#(B
ebnet://eb.example.com/dict
ebnet://eb.example.com:22010/dict.app
ebnet://192.168.1.1/dict.app
ebnet://192.168.1.1:22010/dict
ebnet://[fe80::290:27ff:fe3]/dict.app
ebnet://[fe80::290:27ff:fe3]:22010/dict
$B1s3V%"%/%;%9$r9T$&$K$O!"(BEBNETD $B$r(B <$B%[%9%H(B> $B>e$K%$%s%9%H!<%k$9$kI,MW$,(B
$B$"$j$^$9!#(BEBNETD $B$O!"(BEB Library $BMQ$N1s3V%"%/%;%9%5!<%P$N%=%U%H%&%'%"(B
$B$G$9!#(B
EB $B%i%$%V%i%j$O%U%j!<%=%U%H%&%'%"$G$9!#%=!<%9%3!<%I$*$h$S%P%$%J%j$r!"(B
$B$$$o$f$k(B Modified BSD $B%i%$%;%s%9(B $B$N2<$G;HMQ$9$k$3$H$,2DG=$G$9!#(B
($B%P!<%8%g%s(B 4.1$B$h$j$bA0$N$b$N$O!"(BGPL $B$r:NMQ$7$F$$$^$7$?!#(B)
$B%i%$%;%s%9$K4X$7$F!">\$7$/$O(B COPYING $B$H$$$&1QJ8$N%U%!%$%k$r;2>H$7$F(B
$B2<$5$$!#(B
$B:G?7$N(B EB $B%i%$%V%i%j$O<!$N$H$3$m$+$iF~<j$G$-$^$9!#(B
ftp://ftp.sra.co.jp/pub/misc/eb/
EB $B%i%$%V%i%j$K4X$9$k>pJs$O<!$N$H$3$m$+$iF@$k$3$H$,$G$-$^$9!#(B
http://www.sra.co.jp/people/m-kasahr/eb/
$B%3%a%s%H$d%P%0$NJs9p$O(B
m-kasahr@sra.co.jp
$B08$K!"F|K\8l$+1Q8l$G$*Aw$j2<$5$$!#(B

914
lib/ebu/aclocal.m4 vendored Normal file
View file

@ -0,0 +1,914 @@
# generated automatically by aclocal 1.10.3 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.10'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.10.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.10.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[dnl Rely on autoconf to set up CDPATH properly.
AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 8
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 10
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "GCJ", or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], UPC, [depcc="$UPC" am_compiler_list=],
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[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'.
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_$1_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
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[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 8's {/usr,}/bin/sh.
touch 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
;;
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_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Autoconf 2.62 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.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 13
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.60])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
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
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_CC],
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_CXX],
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES(OBJC)],
[define([AC_PROG_OBJC],
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[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
AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 3
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo done
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# We grep out `Entering directory' and `Leaving directory'
# messages which can occur if `w' ends up in MAKEFLAGS.
# In particular we don't look at `^make:' because GNU make might
# be invoked under some other name (usually "gmake"), in which
# case it prints its new name instead of `make'.
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
am__include=include
am__quote=
_am_result=GNU
fi
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
am__include=.include
am__quote="\""
_am_result=BSD
fi
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 5
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
AC_MSG_WARN([`missing' script is too old or missing])
fi
])
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# ------------------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# 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 (
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
rm -f conftest.file
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".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# 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.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility.
AM_MISSING_PROG([AMTAR], [tar])
m4_if([$1], [v7],
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar <conftest.tar])
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([m4/gettext.m4])
m4_include([m4/in6addr.m4])
m4_include([m4/largefile.m4])
m4_include([m4/lcmessage.m4])
m4_include([m4/libtool.m4])
m4_include([m4/ltoptions.m4])
m4_include([m4/ltsugar.m4])
m4_include([m4/ltversion.m4])
m4_include([m4/lt~obsolete.m4])
m4_include([m4/sockaddrin6.m4])
m4_include([m4/sockinttypes.m4])

1501
lib/ebu/config.guess vendored Normal file

File diff suppressed because it is too large Load diff

231
lib/ebu/config.h Normal file
View file

@ -0,0 +1,231 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Use DOS style pathnames */
/* #undef DOS_FILE_PATH */
/* Define if build with ebnet support */
#define ENABLE_EBNET 1
/* Define if build with IPv6 support */
#define ENABLE_IPV6 1
/* Define if libdeflate support is enabled. */
/* #undef ENABLE_LIBDEFLATE */
/* Define if NLS is requested */
#define ENABLE_NLS 1
/* Define if pthread support is enabled. */
/* #undef ENABLE_PTHREAD */
/* Define if build with Winsock2 */
/* #undef ENABLE_WINSOCK2 */
/* Define if command names have the suffix \`.exe' */
/* #undef EXEEXT_EXE */
/* Define to 1 if you have the `atoll' function. */
#define HAVE_ATOLL 1
/* Define to 1 if you have the <direct.h> header file. */
/* #undef HAVE_DIRECT_H */
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you have the `gai_strerror' function. */
#define HAVE_GAI_STRERROR 1
/* Define to 1 if you have the `getaddrinfo' function. */
#define HAVE_GETADDRINFO 1
/* Define to 1 if you have the `getnameinfo' function. */
#define HAVE_GETNAMEINFO 1
/* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1
/* Define to 1 if you have the `getopt_long' function. */
#define HAVE_GETOPT_LONG 1
/* Define to 1 if you have the <iconv.h> header file. */
#define HAVE_ICONV_H 1
/* Define to 1 if you have the `iconv_open' function. */
#define HAVE_ICONV_OPEN 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <langinfo.h> header file. */
#define HAVE_LANGINFO_H 1
/* Define to 1 if you have the `LC_MESSAGES' locale category */
#define HAVE_LC_MESSAGES 1
/* Define to 1 if you have the `bind' library (-lbind). */
/* #undef HAVE_LIBBIND */
/* Define to 1 if you have the <libcharset.h> header file. */
/* #undef HAVE_LIBCHARSET_H */
/* Define to 1 if you have the `libiconv_open' function. */
/* #undef HAVE_LIBICONV_OPEN */
/* Define to 1 if you have the `nsl' library (-lnsl). */
#define HAVE_LIBNSL 1
/* Define to 1 if you have the `resolv' library (-lresolv). */
/* #undef HAVE_LIBRESOLV */
/* Define to 1 if you have the `socket' library (-lsocket). */
/* #undef HAVE_LIBSOCKET */
/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
/* #undef HAVE_LIBWS2_32 */
/* Define to 1 if you have the `locale_charset' function. */
/* #undef HAVE_LOCALE_CHARSET */
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if you have the <mbstring.h> header file. */
/* #undef HAVE_MBSTRING_H */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `nl_langinfo' function. */
#define HAVE_NL_LANGINFO 1
/* Define to 1 if you have the <nl_types.h> header file. */
#define HAVE_NL_TYPES_H 1
/* Define to 1 if you have the <pthread.h> header file. */
#define HAVE_PTHREAD_H 1
/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strcasecmp' function. */
#define HAVE_STRCASECMP 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if <netinet/in.h> defines `struct in6_addr' */
#define HAVE_STRUCT_IN6_ADDR 1
/* Define to 1 if <netinet/in.h> defines `struct sockaddr_in6' */
#define HAVE_STRUCT_SOCKADDR_IN6 1
/* Define to 1 if <netinet/in.h> defines `struct sockaddr_storage' */
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have the <ws2tcpip.h> header file. */
/* #undef HAVE_WS2TCPIP_H */
/* Define to 1 if you have the `_atoi64' function. */
/* #undef HAVE__ATOI64 */
/* Define to 1 if you have the `_getdcwd' function. */
/* #undef HAVE__GETDCWD */
/* Define to 1 if `in6addr_any' is declared by <netinet/in.h> */
#define IN6ADDR_ANY_DECLARED 1
/* Define to 1 if `in6addr_loopback' is declared by <netinet/in.h> */
#define IN6ADDR_LOOPBACK_DECLARED 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Mailing address */
#define MAILING_ADDRESS "kzhr@d1.dion.ne.jp"
/* Name of package */
#define PACKAGE "ebu"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME "ebu"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "ebu 4.5-20200413"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "ebu"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "4.5-20200413"
/* Define to `1' if printf() recognizes "I64" modifier for __int64 */
/* #undef PRINTF_I64_MODIFIER */
/* Define to `1' if printf() recognizes "ll" modifier for long long */
#define PRINTF_LL_MODIFIER 1
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "4.5-20200413"
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to `unsigned char', `unsigned short', `unsigned int' or `unsigned
long' according with size of `sin_port' in `struct sockaddr_in', if
<sys/types.h>, <sys/socket.h> or <netinet/in.h> does not define
`in_port_t'. */
/* #undef in_port_t */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef mode_t */
/* Define to `unsigned char', `unsigned short', `unsigned int' or `unsigned
long' according with size of `sa_family' in `struct sockaddr', if
<sys/types.h> or <sys/socket.h> does not define `sa_family_t'. */
/* #undef sa_family_t */
/* Define to `int' if <sys/types.h> or <sys/socket.h> does not define. */
/* #undef socklen_t */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef ssize_t */

230
lib/ebu/config.h.in Normal file
View file

@ -0,0 +1,230 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* Use DOS style pathnames */
#undef DOS_FILE_PATH
/* Define if build with ebnet support */
#undef ENABLE_EBNET
/* Define if build with IPv6 support */
#undef ENABLE_IPV6
/* Define if libdeflate support is enabled. */
#undef ENABLE_LIBDEFLATE
/* Define if NLS is requested */
#undef ENABLE_NLS
/* Define if pthread support is enabled. */
#undef ENABLE_PTHREAD
/* Define if build with Winsock2 */
#undef ENABLE_WINSOCK2
/* Define if command names have the suffix \`.exe' */
#undef EXEEXT_EXE
/* Define to 1 if you have the `atoll' function. */
#undef HAVE_ATOLL
/* Define to 1 if you have the <direct.h> header file. */
#undef HAVE_DIRECT_H
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the `gai_strerror' function. */
#undef HAVE_GAI_STRERROR
/* Define to 1 if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the `getnameinfo' function. */
#undef HAVE_GETNAMEINFO
/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
/* Define to 1 if you have the `getopt_long' function. */
#undef HAVE_GETOPT_LONG
/* Define to 1 if you have the <iconv.h> header file. */
#undef HAVE_ICONV_H
/* Define to 1 if you have the `iconv_open' function. */
#undef HAVE_ICONV_OPEN
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
/* Define to 1 if you have the `LC_MESSAGES' locale category */
#undef HAVE_LC_MESSAGES
/* Define to 1 if you have the `bind' library (-lbind). */
#undef HAVE_LIBBIND
/* Define to 1 if you have the <libcharset.h> header file. */
#undef HAVE_LIBCHARSET_H
/* Define to 1 if you have the `libiconv_open' function. */
#undef HAVE_LIBICONV_OPEN
/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL
/* Define to 1 if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
#undef HAVE_LIBWS2_32
/* Define to 1 if you have the `locale_charset' function. */
#undef HAVE_LOCALE_CHARSET
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define to 1 if you have the <mbstring.h> header file. */
#undef HAVE_MBSTRING_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO
/* Define to 1 if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
/* Define to 1 if you have the <pthread.h> header file. */
#undef HAVE_PTHREAD_H
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if <netinet/in.h> defines `struct in6_addr' */
#undef HAVE_STRUCT_IN6_ADDR
/* Define to 1 if <netinet/in.h> defines `struct sockaddr_in6' */
#undef HAVE_STRUCT_SOCKADDR_IN6
/* Define to 1 if <netinet/in.h> defines `struct sockaddr_storage' */
#undef HAVE_STRUCT_SOCKADDR_STORAGE
/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H
/* Define to 1 if you have the `_atoi64' function. */
#undef HAVE__ATOI64
/* Define to 1 if you have the `_getdcwd' function. */
#undef HAVE__GETDCWD
/* Define to 1 if `in6addr_any' is declared by <netinet/in.h> */
#undef IN6ADDR_ANY_DECLARED
/* Define to 1 if `in6addr_loopback' is declared by <netinet/in.h> */
#undef IN6ADDR_LOOPBACK_DECLARED
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Mailing address */
#undef MAILING_ADDRESS
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to `1' if printf() recognizes "I64" modifier for __int64 */
#undef PRINTF_I64_MODIFIER
/* Define to `1' if printf() recognizes "ll" modifier for long long */
#undef PRINTF_LL_MODIFIER
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
/* Define to `unsigned char', `unsigned short', `unsigned int' or `unsigned
long' according with size of `sin_port' in `struct sockaddr_in', if
<sys/types.h>, <sys/socket.h> or <netinet/in.h> does not define
`in_port_t'. */
#undef in_port_t
/* Define to `int' if <sys/types.h> does not define. */
#undef mode_t
/* Define to `unsigned char', `unsigned short', `unsigned int' or `unsigned
long' according with size of `sa_family' in `struct sockaddr', if
<sys/types.h> or <sys/socket.h> does not define `sa_family_t'. */
#undef sa_family_t
/* Define to `int' if <sys/types.h> or <sys/socket.h> does not define. */
#undef socklen_t
/* Define to `int' if <sys/types.h> does not define. */
#undef ssize_t

2501
lib/ebu/config.log Normal file

File diff suppressed because it is too large Load diff

2037
lib/ebu/config.status Normal file

File diff suppressed because it is too large Load diff

1705
lib/ebu/config.sub vendored Normal file

File diff suppressed because it is too large Load diff

16474
lib/ebu/configure vendored Normal file

File diff suppressed because it is too large Load diff

488
lib/ebu/configure.ac Normal file
View file

@ -0,0 +1,488 @@
dnl *
dnl * Process this file with autoconf to produce a configure script.
dnl *
AC_INIT(ebu, 4.5-20200413)
AC_CONFIG_SRCDIR(ebu/eb.c)
AC_PREREQ(2.54)
AM_INIT_AUTOMAKE
dnl *
dnl * Library version info.
dnl *
LIBEB_VERSION_INFO=17:0:0
AC_SUBST(LIBEB_VERSION_INFO)
EB_VERSION_MAJOR=4
EB_VERSION_MINOR=5
AC_SUBST(EB_VERSION_MAJOR)
AC_SUBST(EB_VERSION_MINOR)
dnl *
dnl * Set mailing address.
dnl *
MAILING_ADDRESS='kzhr@d1.dion.ne.jp'
AC_SUBST(MAILING_ADDRESS)
AC_DEFINE_UNQUOTED(MAILING_ADDRESS, "$MAILING_ADDRESS", [Mailing address])
dnl *
dnl * Programs
dnl *
AC_PROG_CC
AC_PROG_LIBTOOL
AC_PROG_LN_S
AC_PROG_INSTALL
AC_OPENMP
CFLAGS="$CFLAGS $OPENMP_CFLAGS"
AC_PATH_PROG(PERL, perl, no)
if test "$PERL" = no; then
AC_MSG_WARN(perl not found)
PERL=/usr/bin/perl
fi
dnl *
dnl * large file support.
dnl *
eb_SYS_LARGEFILE
dnl *
dnl * GNU gettext
dnl *
eb_GNU_GETTEXT(external)
dnl *
dnl * --enable-samples option.
dnl *
AC_ARG_ENABLE(samples,
[ --enable-samples compile sample programs [default=no]],
[case "${enableval}" in
yes) samples=true ;;
no) samples=false ;;
*) AC_MSG_ERROR(invalid argument to --enable-samples) ;;
esac], samples=false)
AM_CONDITIONAL(ENABLE_SAMPLES, test ${samples} = true)
dnl *
dnl * --enable-pthread option.
dnl *
AC_ARG_ENABLE(pthread,
AC_HELP_STRING([--enable-pthread], [build pthread safe libraries [[no]]]),
[case "${enableval}" in
yes) ENABLE_PTHREAD=yes ;;
no) ENABLE_PTHREAD=no ;;
*) AC_MSG_ERROR(invalid argument to --enable-pthread) ;;
esac], ENABLE_PTHREAD=no)
dnl *
dnl * --with-pthread-cppflags option.
dnl *
AC_ARG_WITH(pthread-cppflags,
AC_HELP_STRING([--with-pthread-cppflags=FLAGS],
[additional CPPFLAGS for pthread support]),
[PTHREAD_CPPFLAGS="${withval}"], [PTHREAD_CPPFLAGS=''])
dnl *
dnl * --with-pthread-cflags option.
dnl *
AC_ARG_WITH(pthread-cflags,
AC_HELP_STRING([--with-pthread-cflags=FLAGS],
[additional CFLAGS for pthread support]),
[PTHREAD_CFLAGS="${withval}"], [PTHREAD_CFLAGS=''])
dnl *
dnl * --with-pthread-ldflags option.
dnl *
AC_ARG_WITH(pthread-ldflags,
AC_HELP_STRING([--with-pthread-ldflags=FLAGS],
[additional LDFLAGS for pthread support]),
[PTHREAD_LDFLAGS="${withval}"], [PTHREAD_LDFLAGS=''])
dnl *
dnl * --with-pkgdocdir option.
dnl *
AC_ARG_WITH(pkgdocdir,
AC_HELP_STRING([--with-pkgdocdir=DIR],
[HTML documents in DIR [[default=DATADIR/ebu/doc]]]),
[pkgdocdir="${withval}"],[pkgdocdir='${datadir}/ebu/doc'])
AC_SUBST(pkgdocdir)
dnl *
dnl * Check for pthread.
dnl *
AC_MSG_CHECKING(for pthread)
if test $ENABLE_PTHREAD = no; then
try_pthread=no
else
save_CPPFLAGS=$CPPFLAGS
save_CFLAGS=$CFLAGS
save_LDFLAGS=$LDFLAGS
CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS"
AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <pthread.h>
static pthread_mutex_t m=PTHREAD_MUTEX_INITIALIZER;
int
main()
{
pthread_mutex_lock(&m);
return 0;
}
])],
try_pthread=yes, try_pthread=no)
CPPFLAGS=$save_CPPFLAGS
CFLAGS=$save_CFLAGS
LDFLAGS=$save_LDFLAGS
fi
AC_MSG_RESULT($try_pthread)
if test $ENABLE_PTHREAD = yes; then
if test $try_pthread = no; then
AC_MSG_ERROR(pthread not available)
fi
fi
if test $ENABLE_PTHREAD = yes; then
AC_DEFINE(ENABLE_PTHREAD, 1, [Define if pthread support is enabled.])
CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS"
fi
dnl *
dnl * --enable-libdeflate option.
dnl *
AC_ARG_ENABLE(libdeflate,
AC_HELP_STRING([--enable-libdeflate], [build with libdeflate library [[no]]]),
[case "${enableval}" in
yes) ENABLE_LIBDEFLATE=yes ;;
no) ENABLE_LIBDEFLATE=no ;;
*) AC_MSG_ERROR(invalid argument to --enable-libdeflate) ;;
esac], ENABLE_LIBDEFLATE=no)
dnl *
dnl * --with-libdeflate-includes option.
dnl *
AC_ARG_WITH(libdeflate-includes,
AC_HELP_STRING([--with-libdeflate-includes=DIR], [libdeflate include files are in DIR]),
[libdeflate_includedir="${withval}"], [libdeflate_includedir=''])
if test "X$libdeflate_includedir" != X; then
LIBDEFLATEINCS="-I$libdeflate_includedir"
else
LIBDEFLATEINCS=''
fi
dnl *
dnl * --with-libdeflate-libraries option.
dnl *
AC_ARG_WITH(libdeflate-libraries,
AC_HELP_STRING([--with-libdeflate-libraries=DIR], [libdeflate library files are in DIR]),
[libdeflate_libdir="${withval}"], [libdeflate_libdir=''])
if test "X$libdeflate_libdir" != X; then
LIBDEFLATELIBS="-L$libdeflate_libdir -ldeflate"
LIBDEFLATEDEPS=''
else
LIBDEFLATELIBS='-ldeflate'
LIBDEFLATEDEPS=''
fi
dnl *
dnl * Check for libdeflate.
dnl *
AC_MSG_CHECKING(for libdeflate)
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $LIBDEFLATEINCS"
LIBS="$LIBS $LIBDEFLATELIBS"
AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <libdeflate.h>
int
main()
{
struct libdeflate_compressor *c; c = libdeflate_alloc_compressor(12);
return 0;
}
])],
try_libdeflate=yes, try_libdeflate=no)
CPPFLAGS=$save_CPPFLAGS
LIBS=$save_LIBS
AC_MSG_RESULT($try_libdeflate)
if test $try_libdeflate = no; then
if test $ENABLE_LIBDEFLATE = yes; then
AC_MSG_ERROR(libdeflate not found)
fi
fi
if test $ENABLE_LIBDEFLATE = yes; then
AC_DEFINE(ENABLE_LIBDEFLATE, 1, [Define if libdeflate support is enabled.])
fi
dnl *
dnl * --with-zlib-includes option.
dnl *
AC_ARG_WITH(zlib-includes,
AC_HELP_STRING([--with-zlib-includes=DIR], [zlib include files are in DIR]),
[z_includedir="${withval}"], [z_includedir=''])
if test "X$z_includedir" != X; then
ZLIBINCS="-I$z_includedir"
else
ZLIBINCS=''
fi
dnl *
dnl * --with-zlib-libraries option.
dnl *
AC_ARG_WITH(zlib-libraries,
AC_HELP_STRING([--with-zlib-libraries=DIR], [zlib library files are in DIR]),
[z_libdir="${withval}"], [z_libdir=''])
if test "X$z_libdir" != X; then
ZLIBLIBS="-L$z_libdir -lz"
ZLIBDEPS=''
else
ZLIBLIBS='-lz'
ZLIBDEPS=''
fi
dnl *
dnl * Check for zlib.
dnl *
AC_MSG_CHECKING(for zlib)
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $ZLIBINCS"
LIBS="$LIBS $ZLIBLIBS"
AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <zlib.h>
int
main()
{
z_stream stream; inflate(&stream, Z_FINISH);
return 0;
}
])],
try_zlib=yes, try_zlib=no)
CPPFLAGS=$save_CPPFLAGS
LIBS=$save_LIBS
AC_MSG_RESULT($try_zlib)
if test $try_zlib = no; then
if test $try_libdeflate = no; then
AC_MSG_ERROR(zlib not found)
fi
fi
if test $ENABLE_LIBDEFLATE = yes; then
ZLIBINCS=$LIBDEFLATEINCS
ZLIBLIBS=$LIBDEFLATELIBS
ZLIBDEPS=$LIBDEFLATEDEPS
fi
AC_SUBST(ZLIBINCS)
AC_SUBST(ZLIBLIBS)
AC_SUBST(ZLIBDEPS)
dnl *
dnl * --enable-ebnet option.
dnl *
AC_ARG_ENABLE(ebnet,
AC_HELP_STRING([--enable-ebnet], [EBNET support [[yes]]]),
[ENABLE_EBNET="${enableval}"], [ENABLE_EBNET='yes'])
AC_SUBST(ENABLE_EBNET)
AM_CONDITIONAL(ENABLE_EBNET, test X$ENABLE_EBNET = Xyes)
dnl *
dnl * --enable-ipv6 option.
dnl *
AC_ARG_ENABLE(ipv6,
AC_HELP_STRING([--enable-ipv6],
[IPv6 support for EBNET [[yes]] (if the system supports IPv6)]),
[ENABLE_IPV6="${enableval}"], [ENABLE_IPV6='auto'])
dnl *
dnl * --enable-winsock option.
dnl *
AC_ARG_ENABLE(winsock2,
AC_HELP_STRING([--enable-winsock2],
[Use Winsock2 for EBNET [[auto]]]),
[ENABLE_WINSOCK2="${enableval}"], [ENABLE_WINSOCK2='auto'])
dnl *
dnl * Compiler Characteristics.
dnl *
dnl *
dnl * Header Files.
dnl *
AC_CHECK_HEADERS(direct.h langinfo.h mbstring.h pthread.h)
dnl *
dnl * Structures.
dnl *
dnl *
dnl * Libraries.
dnl *
AC_CHECK_LIB(resolv, res_query)
if test "$ac_cv_lib_resolv_res_query" = no; then
AC_CHECK_LIB(bind, res_query)
fi
AC_CHECK_LIB(nsl, gethostname)
AC_CHECK_LIB(socket, socket)
dnl *
dnl * Library Functions.
dnl *
AC_CHECK_FUNCS(nl_langinfo _getdcwd atoll _atoi64)
AC_REPLACE_FUNCS(strcasecmp)
dnl *
dnl * Typedefs.
dnl *
AC_TYPE_MODE_T
AC_CHECK_TYPE(ssize_t, int)
dnl *
dnl * System services
dnl *
AC_EXEEXT
AC_OBJEXT
AM_CONDITIONAL(EXEEXT_EXE, test X$ac_exeext = Xyes)
if test X$ac_exeext = X.exe; then
AC_DEFINE(EXEEXT_EXE, 1, [Define if command names have the suffix \`.exe'])
fi
dnl *
dnl * Check for Winsock2
dnl *
if test "$ENABLE_EBNET" = yes; then
AC_CHECK_HEADERS(ws2tcpip.h sys/socket.h)
if test "$ENABLE_WINSOCK2" = auto; then
if test "$ac_cv_header_ws2tcpip_h" = yes; then
if test "$ac_cv_header_sys_socket_h" = no; then
ENABLE_WINSOCK2=yes
else
ENABLE_WINSOCK2=no
fi
else
ENABLE_WINSOCK2=no
fi
fi
if test "$ENABLE_WINSOCK2" = yes; then
if test "$ac_cv_header_ws2tcpip_h" = no; then
AC_MSG_ERROR(Winsock2 not available)
fi
AC_DEFINE(ENABLE_WINSOCK2, 1, [Define if build with Winsock2])
fi
else
ENABLE_WINSOCK2=no
fi
AC_MSG_CHECKING(for Winsock2 support)
AM_CONDITIONAL(ENABLE_WINSOCK2, test X$ENABLE_WINSOCK2 = Xyes)
AC_MSG_RESULT($ENABLE_WINSOCK2)
dnl *
dnl * Check for getopt_long
dnl *
AC_CHECK_HEADERS(getopt.h)
AC_CHECK_FUNCS(getopt_long)
AM_CONDITIONAL(HAVE_GETOPT_LONG, test X$HAVE_GETOPT_LONG = Xyes)
dnl *
dnl * ebnet support
dnl *
if test "$ENABLE_EBNET" = yes; then
AC_DEFINE(ENABLE_EBNET, 1, [Define if build with ebnet support])
AC_TYPE_IN_PORT_T
AC_TYPE_SA_FAMILY_T
AC_TYPE_SOCKLEN_T
AC_STRUCT_IN6_ADDR
AC_STRUCT_SOCKADDR_IN6
AC_STRUCT_SOCKADDR_STORAGE
AC_DECL_IN6ADDR_ANY
AC_DECL_IN6ADDR_LOOPBACK
if test "$ENABLE_WINSOCK2" = yes; then
AC_CHECK_LIB(ws2_32, getaddrinfo)
AC_CHECK_FUNCS(getaddrinfo getnameinfo)
else
AC_CHECK_FUNCS(getaddrinfo getnameinfo gai_strerror)
fi
if test "$ENABLE_IPV6" = auto; then
if test "$ac_cv_struct_in6_addr$ac_cv_func_getaddrinfo" = yesyes; then
ENABLE_IPV6=yes
else
ENABLE_IPV6=no
fi
fi
AC_MSG_CHECKING(for IPv6 support)
if test "$ENABLE_IPV6" = yes; then
if test "$ac_cv_struct_in6_addr" = no; then
AC_MSG_ERROR(IPv6 not available)
fi
if test "${ac_cv_func_getaddrinfo}" = no; then
AC_MSG_ERROR(IPv6 not available)
fi
AC_DEFINE(ENABLE_IPV6, 1, [Define if build with IPv6 support])
fi
AC_MSG_RESULT($ENABLE_IPV6)
fi
dnl *
dnl * DOS style path support
dnl *
AC_CANONICAL_HOST
AC_MSG_CHECKING(for DOS style pathnames)
dos_file_path="no"
case ${host_os} in
*djgpp | *mingw* | *emx*) dos_file_path="yes" ;;
esac
if test "$dos_file_path" = yes; then
AC_DEFINE(DOS_FILE_PATH, 1, [Use DOS style pathnames])
fi
AC_MSG_RESULT($dos_file_path)
dnl *
dnl * Substitusion for eb.conf.
dnl *
AC_SUBST(ENABLE_LIBDEFLATE)
EBCONF_ZLIBINCS=$ZLIBINCS
EBCONF_ZLIBLIBS=$ZLIBLIBS
AC_SUBST(EBCONF_ZLIBINCS)
AC_SUBST(EBCONF_ZLIBLIBS)
AC_SUBST(ENABLE_PTHREAD)
AC_SUBST(PTHREAD_CPPFLAGS)
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(PTHREAD_LDFLAGS)
EBCONF_INTLINCS=$INTLINCS
EBCONF_INTLLIBS=$INTLLIBS
AC_SUBST(EBCONF_INTLINCS)
AC_SUBST(EBCONF_INTLLIBS)
EBCONF_EBINCS='-I$(includedir)'
if test "$ENABLE_WINSOCK2" = yes; then
EBCONF_EBLIBS='-L$(libdir) -lebu -lws2_32'
else
EBCONF_EBLIBS='-L$(libdir) -lebu'
fi
AC_SUBST(EBCONF_EBINCS)
AC_SUBST(EBCONF_EBLIBS)
dnl *
dnl * Output Files.
dnl *
AC_CONFIG_HEADER(config.h)
AC_CONFIG_FILES([Makefile ebu/Makefile libebutils/Makefile ebappendix/Makefile
ebfont/Makefile ebinfo/Makefile ebrefile/Makefile ebstopcode/Makefile
ebzip/Makefile doc/Makefile po-eb/Makefile po-ebutils/Makefile
m4/Makefile samples/Makefile])
AC_OUTPUT

632
lib/ebu/depcomp Normal file
View file

@ -0,0 +1,632 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# 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 <oliva@dcc.unicamp.br>.
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 outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
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"
# 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
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 -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## 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).
## - 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 -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## 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.
tr ' ' '
' < "$tmpdepfile" |
## 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.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then :
else
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 ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
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.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
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 -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
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.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
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 -eq 0; then :
else
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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
echo "#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.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# 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.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
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"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
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:: \1 \\:p' >> "$depfile"
echo " " >> "$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 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

572
lib/ebu/doc/Makefile Normal file
View file

@ -0,0 +1,572 @@
# Makefile.in generated by automake 1.10.3 from Makefile.am.
# doc/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
pkgdatadir = $(datadir)/ebu
pkglibdir = $(libdir)/ebu
pkgincludedir = $(includedir)/ebu
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
subdir = doc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/in6addr.m4 $(top_srcdir)/m4/largefile.m4 \
$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/sockaddrin6.m4 \
$(top_srcdir)/m4/sockinttypes.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkgdocdir)"
pkgdocDATA_INSTALL = $(INSTALL_DATA)
DATA = $(pkgdoc_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run aclocal-1.10
AMTAR = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run autoconf
AUTOHEADER = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run autoheader
AUTOMAKE = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run automake-1.10
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2 -fopenmp
CPP = gcc -E
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DLLTOOL = false
DSYMUTIL =
DUMPBIN =
EBCONF_EBINCS = -I$(includedir)
EBCONF_EBLIBS = -L$(libdir) -lebu
EBCONF_INTLINCS =
EBCONF_INTLLIBS =
EBCONF_ZLIBINCS =
EBCONF_ZLIBLIBS = -lz
EB_VERSION_MAJOR = 4
EB_VERSION_MINOR = 5
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /usr/bin/grep -E
ENABLE_EBNET = yes
ENABLE_LIBDEFLATE = no
ENABLE_NLS = yes
ENABLE_PTHREAD = no
EXEEXT =
FGREP = /usr/bin/grep -F
GREP = /usr/bin/grep
ICONVINCS =
ICONVLIBS =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
INTLINCS =
INTLLIBS =
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS =
LIBEB_VERSION_INFO = 17:0:0
LIBOBJS =
LIBS = -lnsl
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAILING_ADDRESS = kzhr@d1.dion.ne.jp
MAKEINFO = ${SHELL} /mnt/d/files/projects/ebclient/lib/ebu/missing --run makeinfo
MANIFEST_TOOL = :
MKDIR_P = /usr/bin/mkdir -p
MSGFMT = :
MSGMERGE = msgmerge
NM = /usr/bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
OPENMP_CFLAGS = -fopenmp
OTOOL =
OTOOL64 =
PACKAGE = ebu
PACKAGE_BUGREPORT =
PACKAGE_NAME = ebu
PACKAGE_STRING = ebu 4.5-20200413
PACKAGE_TARNAME = ebu
PACKAGE_URL =
PACKAGE_VERSION = 4.5-20200413
PATH_SEPARATOR = :
PERL = /usr/bin/perl
PTHREAD_CFLAGS =
PTHREAD_CPPFLAGS =
PTHREAD_LDFLAGS =
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/bash
STRIP = strip
VERSION = 4.5-20200413
XGETTEXT = :
ZLIBDEPS =
ZLIBINCS =
ZLIBLIBS = -lz
abs_builddir = /mnt/d/files/projects/ebclient/lib/ebu/doc
abs_srcdir = /mnt/d/files/projects/ebclient/lib/ebu/doc
abs_top_builddir = /mnt/d/files/projects/ebclient/lib/ebu
abs_top_srcdir = /mnt/d/files/projects/ebclient/lib/ebu
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = $(SHELL) /mnt/d/files/projects/ebclient/lib/ebu/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = $(datadir)/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /usr/bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
pkgdocdir = ${datadir}/ebu/doc
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
runstatedir = ${localstatedir}/run
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
pkgdoc_DATA = eb.html ebappendix.html ebfont.html ebinfo.html ebrefile.html \
ebstopcode.html ebzip.html
EXTRA_DIST = eb.html.in ebappendix.html.in ebfont.html.in ebinfo.html.in \
ebrefile.html.in ebstopcode.html.in ebzip.html.in eb.css ebutils.css \
c2html html-include html-index html-split html-toc
CLEANFILES = *.html
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-pkgdocDATA: $(pkgdoc_DATA)
@$(NORMAL_INSTALL)
test -z "$(pkgdocdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdocdir)"
@list='$(pkgdoc_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(pkgdocDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdocdir)/$$f'"; \
$(pkgdocDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdocdir)/$$f"; \
done
uninstall-pkgdocDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgdoc_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(pkgdocdir)/$$f'"; \
rm -f "$(DESTDIR)$(pkgdocdir)/$$f"; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(pkgdocdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-pkgdocDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-pkgdocDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: install-am install-data-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-data-hook install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-pkgdocDATA install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am uninstall uninstall-am uninstall-hook \
uninstall-pkgdocDATA
install-data-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
for j in $$base-[0-9][0-9].html; do \
test -r $$j || continue; \
echo " $(INSTALL_DATA) '$$j' '$(DESTDIR)$(pkgdocdir)/$$j'"; \
$(INSTALL_DATA) "$$j" "$(DESTDIR)$(pkgdocdir)/$$j"; \
done; \
done
uninstall-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
rm -f "$(DESTDIR)$(pkgdocdir)"/$$base-*.html; \
done
version.html:
rm -f $@
echo $(VERSION) > version.html
splitted: eb-splitted ebappendix-splitted ebfont-splitted ebinfo-splitted \
ebrefile-splitted ebstopcode-splitted ebzip-splitted
eb.html: eb-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p eb -w 2 eb-cat.html
ebappendix.html: ebappendix-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebappendix -w 2 ebappendix-cat.html
ebfont.html: ebfont-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebfont -w 2 ebfont-cat.html
ebinfo.html: ebinfo-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebinfo -w 2 ebinfo-cat.html
ebrefile.html: ebrefile-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebrefile -w 2 ebrefile-cat.html
ebstopcode.html: ebstopcode-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebstopcode -w 2 ebstopcode-cat.html
ebzip.html: ebzip-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebzip -w 2 ebzip-cat.html
eb-cat.html: eb.html.in version.html eb-toc.html eb-sample-appendix.html \
eb-sample-booklist.html eb-sample-disctype.html eb-sample-font.html \
eb-sample-initexit.html eb-sample-subbook.html eb-sample-text.html \
eb-sample-word.html eb-index-type.html eb-index-func.html \
eb-index-const.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/eb.html.in
ebappendix-cat.html: $(srcdir)/ebappendix.html.in version.html \
ebappendix-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebappendix.html.in
ebfont-cat.html: $(srcdir)/ebfont.html.in version.html ebfont-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebfont.html.in
ebinfo-cat.html: $(srcdir)/ebinfo.html.in version.html ebinfo-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebinfo.html.in
ebrefile-cat.html: $(srcdir)/ebrefile.html.in version.html ebrefile-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebrefile.html.in
ebstopcode-cat.html: $(srcdir)/ebstopcode.html.in version.html \
ebstopcode-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebstopcode.html.in
ebzip-cat.html: $(srcdir)/ebzip.html.in version.html ebzip-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebzip.html.in
eb-toc.html: $(srcdir)/eb.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/eb.html.in > $@
ebappendix-toc.html: $(srcdir)/ebappendix.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebappendix.html.in > $@
ebfont-toc.html: $(srcdir)/ebfont.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebfont.html.in > $@
ebinfo-toc.html: $(srcdir)/ebinfo.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebinfo.html.in > $@
ebrefile-toc.html: $(srcdir)/ebrefile.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebrefile.html.in > $@
ebstopcode-toc.html: $(srcdir)/ebstopcode.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebstopcode.html.in > $@
ebzip-toc.html: $(srcdir)/ebzip.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebzip.html.in > $@
eb-sample-appendix.html: $(top_srcdir)/samples/appendix.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/appendix.c > $@
eb-sample-booklist.html: $(top_srcdir)/samples/booklist.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/booklist.c > $@
eb-sample-disctype.html: $(top_srcdir)/samples/disctype.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/disctype.c > $@
eb-sample-font.html: $(top_srcdir)/samples/font.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/font.c > $@
eb-sample-initexit.html: $(top_srcdir)/samples/initexit.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/initexit.c > $@
eb-sample-subbook.html: $(top_srcdir)/samples/subbook.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/subbook.c > $@
eb-sample-text.html: $(top_srcdir)/samples/text.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/text.c > $@
eb-sample-word.html: $(top_srcdir)/samples/word.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/word.c > $@
eb-index-type.html eb-index-func.html eb-index-const.html: \
$(srcdir)/eb.html.in
$(PERL) $(srcdir)/html-index -h -p eb-index $(srcdir)/eb.html.in
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

160
lib/ebu/doc/Makefile.am Normal file
View file

@ -0,0 +1,160 @@
pkgdoc_DATA = eb.html ebappendix.html ebfont.html ebinfo.html ebrefile.html \
ebstopcode.html ebzip.html
EXTRA_DIST = eb.html.in ebappendix.html.in ebfont.html.in ebinfo.html.in \
ebrefile.html.in ebstopcode.html.in ebzip.html.in eb.css ebutils.css \
c2html html-include html-index html-split html-toc
CLEANFILES = *.html
install-data-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
for j in $$base-[0-9][0-9].html; do \
test -r $$j || continue; \
echo " $(INSTALL_DATA) '$$j' '$(DESTDIR)$(pkgdocdir)/$$j'"; \
$(INSTALL_DATA) "$$j" "$(DESTDIR)$(pkgdocdir)/$$j"; \
done; \
done
uninstall-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
rm -f "$(DESTDIR)$(pkgdocdir)"/$$base-*.html; \
done
version.html:
rm -f $@
echo $(VERSION) > version.html
splitted: eb-splitted ebappendix-splitted ebfont-splitted ebinfo-splitted \
ebrefile-splitted ebstopcode-splitted ebzip-splitted
eb.html: eb-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p eb -w 2 eb-cat.html
ebappendix.html: ebappendix-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebappendix -w 2 ebappendix-cat.html
ebfont.html: ebfont-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebfont -w 2 ebfont-cat.html
ebinfo.html: ebinfo-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebinfo -w 2 ebinfo-cat.html
ebrefile.html: ebrefile-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebrefile -w 2 ebrefile-cat.html
ebstopcode.html: ebstopcode-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebstopcode -w 2 ebstopcode-cat.html
ebzip.html: ebzip-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebzip -w 2 ebzip-cat.html
eb-cat.html: eb.html.in version.html eb-toc.html eb-sample-appendix.html \
eb-sample-booklist.html eb-sample-disctype.html eb-sample-font.html \
eb-sample-initexit.html eb-sample-subbook.html eb-sample-text.html \
eb-sample-word.html eb-index-type.html eb-index-func.html \
eb-index-const.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/eb.html.in
ebappendix-cat.html: $(srcdir)/ebappendix.html.in version.html \
ebappendix-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebappendix.html.in
ebfont-cat.html: $(srcdir)/ebfont.html.in version.html ebfont-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebfont.html.in
ebinfo-cat.html: $(srcdir)/ebinfo.html.in version.html ebinfo-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebinfo.html.in
ebrefile-cat.html: $(srcdir)/ebrefile.html.in version.html ebrefile-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebrefile.html.in
ebstopcode-cat.html: $(srcdir)/ebstopcode.html.in version.html \
ebstopcode-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebstopcode.html.in
ebzip-cat.html: $(srcdir)/ebzip.html.in version.html ebzip-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebzip.html.in
eb-toc.html: $(srcdir)/eb.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/eb.html.in > $@
ebappendix-toc.html: $(srcdir)/ebappendix.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebappendix.html.in > $@
ebfont-toc.html: $(srcdir)/ebfont.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebfont.html.in > $@
ebinfo-toc.html: $(srcdir)/ebinfo.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebinfo.html.in > $@
ebrefile-toc.html: $(srcdir)/ebrefile.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebrefile.html.in > $@
ebstopcode-toc.html: $(srcdir)/ebstopcode.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebstopcode.html.in > $@
ebzip-toc.html: $(srcdir)/ebzip.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebzip.html.in > $@
eb-sample-appendix.html: $(top_srcdir)/samples/appendix.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/appendix.c > $@
eb-sample-booklist.html: $(top_srcdir)/samples/booklist.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/booklist.c > $@
eb-sample-disctype.html: $(top_srcdir)/samples/disctype.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/disctype.c > $@
eb-sample-font.html: $(top_srcdir)/samples/font.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/font.c > $@
eb-sample-initexit.html: $(top_srcdir)/samples/initexit.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/initexit.c > $@
eb-sample-subbook.html: $(top_srcdir)/samples/subbook.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/subbook.c > $@
eb-sample-text.html: $(top_srcdir)/samples/text.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/text.c > $@
eb-sample-word.html: $(top_srcdir)/samples/word.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/word.c > $@
eb-index-type.html eb-index-func.html eb-index-const.html: \
$(srcdir)/eb.html.in
$(PERL) $(srcdir)/html-index -h -p eb-index $(srcdir)/eb.html.in

572
lib/ebu/doc/Makefile.in Normal file
View file

@ -0,0 +1,572 @@
# Makefile.in generated by automake 1.10.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = doc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/in6addr.m4 $(top_srcdir)/m4/largefile.m4 \
$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/sockaddrin6.m4 \
$(top_srcdir)/m4/sockinttypes.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkgdocdir)"
pkgdocDATA_INSTALL = $(INSTALL_DATA)
DATA = $(pkgdoc_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
EBCONF_EBINCS = @EBCONF_EBINCS@
EBCONF_EBLIBS = @EBCONF_EBLIBS@
EBCONF_INTLINCS = @EBCONF_INTLINCS@
EBCONF_INTLLIBS = @EBCONF_INTLLIBS@
EBCONF_ZLIBINCS = @EBCONF_ZLIBINCS@
EBCONF_ZLIBLIBS = @EBCONF_ZLIBLIBS@
EB_VERSION_MAJOR = @EB_VERSION_MAJOR@
EB_VERSION_MINOR = @EB_VERSION_MINOR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_EBNET = @ENABLE_EBNET@
ENABLE_LIBDEFLATE = @ENABLE_LIBDEFLATE@
ENABLE_NLS = @ENABLE_NLS@
ENABLE_PTHREAD = @ENABLE_PTHREAD@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
ICONVINCS = @ICONVINCS@
ICONVLIBS = @ICONVLIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLINCS = @INTLINCS@
INTLLIBS = @INTLLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBEB_VERSION_INFO = @LIBEB_VERSION_INFO@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAILING_ADDRESS = @MAILING_ADDRESS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_CPPFLAGS = @PTHREAD_CPPFLAGS@
PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
ZLIBDEPS = @ZLIBDEPS@
ZLIBINCS = @ZLIBINCS@
ZLIBLIBS = @ZLIBLIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pkgdocdir = @pkgdocdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
pkgdoc_DATA = eb.html ebappendix.html ebfont.html ebinfo.html ebrefile.html \
ebstopcode.html ebzip.html
EXTRA_DIST = eb.html.in ebappendix.html.in ebfont.html.in ebinfo.html.in \
ebrefile.html.in ebstopcode.html.in ebzip.html.in eb.css ebutils.css \
c2html html-include html-index html-split html-toc
CLEANFILES = *.html
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-pkgdocDATA: $(pkgdoc_DATA)
@$(NORMAL_INSTALL)
test -z "$(pkgdocdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdocdir)"
@list='$(pkgdoc_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(pkgdocDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdocdir)/$$f'"; \
$(pkgdocDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdocdir)/$$f"; \
done
uninstall-pkgdocDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgdoc_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(pkgdocdir)/$$f'"; \
rm -f "$(DESTDIR)$(pkgdocdir)/$$f"; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(pkgdocdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-pkgdocDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-pkgdocDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: install-am install-data-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-data-hook install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-pkgdocDATA install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am uninstall uninstall-am uninstall-hook \
uninstall-pkgdocDATA
install-data-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
for j in $$base-[0-9][0-9].html; do \
test -r $$j || continue; \
echo " $(INSTALL_DATA) '$$j' '$(DESTDIR)$(pkgdocdir)/$$j'"; \
$(INSTALL_DATA) "$$j" "$(DESTDIR)$(pkgdocdir)/$$j"; \
done; \
done
uninstall-hook:
for i in $(pkgdoc_DATA); do \
base="`echo $$i | sed -e 's/\.html//'`"; \
rm -f "$(DESTDIR)$(pkgdocdir)"/$$base-*.html; \
done
version.html:
rm -f $@
echo $(VERSION) > version.html
splitted: eb-splitted ebappendix-splitted ebfont-splitted ebinfo-splitted \
ebrefile-splitted ebstopcode-splitted ebzip-splitted
eb.html: eb-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p eb -w 2 eb-cat.html
ebappendix.html: ebappendix-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebappendix -w 2 ebappendix-cat.html
ebfont.html: ebfont-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebfont -w 2 ebfont-cat.html
ebinfo.html: ebinfo-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebinfo -w 2 ebinfo-cat.html
ebrefile.html: ebrefile-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebrefile -w 2 ebrefile-cat.html
ebstopcode.html: ebstopcode-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebstopcode -w 2 ebstopcode-cat.html
ebzip.html: ebzip-cat.html
rm -f $@
$(PERL) $(srcdir)/html-split -Z -p ebzip -w 2 ebzip-cat.html
eb-cat.html: eb.html.in version.html eb-toc.html eb-sample-appendix.html \
eb-sample-booklist.html eb-sample-disctype.html eb-sample-font.html \
eb-sample-initexit.html eb-sample-subbook.html eb-sample-text.html \
eb-sample-word.html eb-index-type.html eb-index-func.html \
eb-index-const.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/eb.html.in
ebappendix-cat.html: $(srcdir)/ebappendix.html.in version.html \
ebappendix-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebappendix.html.in
ebfont-cat.html: $(srcdir)/ebfont.html.in version.html ebfont-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebfont.html.in
ebinfo-cat.html: $(srcdir)/ebinfo.html.in version.html ebinfo-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebinfo.html.in
ebrefile-cat.html: $(srcdir)/ebrefile.html.in version.html ebrefile-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebrefile.html.in
ebstopcode-cat.html: $(srcdir)/ebstopcode.html.in version.html \
ebstopcode-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebstopcode.html.in
ebzip-cat.html: $(srcdir)/ebzip.html.in version.html ebzip-toc.html
rm -f $@
$(PERL) $(srcdir)/html-include -o $@ $(srcdir)/ebzip.html.in
eb-toc.html: $(srcdir)/eb.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/eb.html.in > $@
ebappendix-toc.html: $(srcdir)/ebappendix.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebappendix.html.in > $@
ebfont-toc.html: $(srcdir)/ebfont.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebfont.html.in > $@
ebinfo-toc.html: $(srcdir)/ebinfo.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebinfo.html.in > $@
ebrefile-toc.html: $(srcdir)/ebrefile.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebrefile.html.in > $@
ebstopcode-toc.html: $(srcdir)/ebstopcode.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebstopcode.html.in > $@
ebzip-toc.html: $(srcdir)/ebzip.html.in
rm -f $@
$(PERL) $(srcdir)/html-toc -m h2 -M h3 $(srcdir)/ebzip.html.in > $@
eb-sample-appendix.html: $(top_srcdir)/samples/appendix.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/appendix.c > $@
eb-sample-booklist.html: $(top_srcdir)/samples/booklist.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/booklist.c > $@
eb-sample-disctype.html: $(top_srcdir)/samples/disctype.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/disctype.c > $@
eb-sample-font.html: $(top_srcdir)/samples/font.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/font.c > $@
eb-sample-initexit.html: $(top_srcdir)/samples/initexit.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/initexit.c > $@
eb-sample-subbook.html: $(top_srcdir)/samples/subbook.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/subbook.c > $@
eb-sample-text.html: $(top_srcdir)/samples/text.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/text.c > $@
eb-sample-word.html: $(top_srcdir)/samples/word.c
rm -f $@
$(PERL) $(srcdir)/c2html $(top_srcdir)/samples/word.c > $@
eb-index-type.html eb-index-func.html eb-index-const.html: \
$(srcdir)/eb.html.in
$(PERL) $(srcdir)/html-index -h -p eb-index $(srcdir)/eb.html.in
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

51
lib/ebu/doc/c2html Normal file
View file

@ -0,0 +1,51 @@
#! /usr/bin/perl
require 5.005;
use Getopt::Std;
#
# Usage
#
my $usage = "Usage: $0 [-t tab-width] [input-file...]\n";
#
# Variables
#
my $tab_width = 8;
my $out_file_name = '-';
#
# Parse command line arguments.
#
getopts(':t:', \%options) or die $usage;
$tab_width = $options{t} if (defined($options{t}));
#
# Convert C to HTML.
#
print "<blockquote>\n";
print "<pre>\n";
while (<>) {
s/^([ \t]*)//;
my $spaces = $1;
my $col = 0;
foreach my $c (unpack('C*', $spaces)) {
if ($c eq ord(' ')) {
$col++;
} else {
$col = ($col + $tab_width) - ($col % $tab_width);
}
}
print ' ' x $col;
s|&|&amp;|g;
s|<|&lt;|g;
s|>|&gt;|g;
print;
}
print "</pre>\n";
print "</blockquote>\n";

132
lib/ebu/doc/eb-01.html Normal file
View file

@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb.html">前へ</a>] [<a href="eb-02.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="introduction">はじめに</a></h2>
<p>
EB ライブラリは CD-ROM 書籍にアクセスするための C のライブラリです。
UNIX 系 OS および Windows (2000以降) のシステム上で動作させることが
できます。
</p>
<p>
EB ライブラリは EB, EBG, EBXA, EBXA-C, S-EBXA および EPWING 形式の
CD-ROM 書籍に対応しています。
これらは、主に日本で販売されている辞書に使われています。
CD-ROM 書籍自体は ISO 9660 形式になっていますので、他の ISO 9660 形式
と同じ要領でマウントすることができます。
</p>
<p>
本書は、EB ライブラリを使ってアプリケーションプログラムを作成する
開発者向けに、ライブラリの仕様を解説した文書です。
そして、ライブラリの公式な参照マニュアルでもあります。
読み進めるにあたって、読者は EB ライブラリおよび CD-ROM 書籍の内部構造
について知っている必要はありませんが、電子ブックか EPWING を利用して、
実際に CD-ROM 書籍がどのようなものかを理解しておくことをお薦めします。
また、C 言語によるプログラミングについては、十分に理解していることを前提
とします。
</p>
<p>
本書の内容に沿って EB ライブラリを使ったアプリケーションプログラムを
作成するには、お使用いのシステムに EB ライブラリと C コンパイラを
インストールしておいて下さい。
なお、本書では主に UNIX 系 OS を使用した場合について、記述しています。
</p>
<p>
EB ライブラリはフリーソフトウェアです。ソースコードおよびバイナリを、
いわゆる Modified BSD ライセンスの下で使用することが可能です。
(バージョン 4.1 よりも前のものは、GPL を採用していました。)
詳しくは、ソースコードに付属している COPYING という英文のファイルを参照
して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="electronic-book-and-epwing">電子ブックと EPWING について</a></h3>
<p>
電子ブックと EPWING は、いずれも主に日本で使われている電子書籍の
データ形式の名称で、CD-ROM に収めた形で数々の書籍が市販されています。
CD-ROM は ISO 9660 形式 なので、CD-ROM ドライブが扱えるシステムであれば、
容易にアクセスすることができます。
電子書籍のデータ形式とはいっても、実際は辞書向けに特化した構造となって
おり、市販されている書籍も辞書の類が圧倒的に多いようです。
</p>
<p>
電子ブック、EPWING ともに、データ形式に関する規格の全容は一般公開されて
いませんが、EPWING ついては規格の一部が日本工業規格 JIS X 4081
「電子出版検索データ構造」として公開されています。
さらに、EPWING と電子ブックのデータ形式は、酷似していることが知られて
います。
</p>
<p>
EB ライブラリの開発者も、電子ブック、EPWING 規格の全容は知りません。
EB ライブラリでは JIS X 4081 の記述をもとに、電子ブック、EPWING を読める
ようにしてあります。
しかしながら、規格の全容が分からない状態で開発しているため、残念ながら
一部に正しく読めない書籍が存在します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="construction-of-this-book">本書の構成について</a></h3>
<p>
次章「EB ライブラリの特徴」では、EB ライブラリが対応している機能、対応
していない機能について、簡単に説明します。
また、ライブラリの概略に関して、最初に知っておいたほうが良いと思われる
事柄をいくつか説明しています。
</p>
<p>
さらに次の章「プログラムのコンパイル方法」では、EB ライブラリを利用した
プログラムのコンパイル方法を説明します。
本書のサンプルプログラムをコンパイルするために必要な情報も、この章に
記してあります。
</p>
<p>
そして、その次の章「ライブラリの初期化と後始末」からが、実際の
EB ライブラリのプログラミングの解説となります。
それぞれの章は、次のような節から構成されています。
ただし、章によっては一部の節がない場合もあります。
</p>
<dl>
<dt>解説</dt>
<dd>
その章で解説する機能や概念についての基礎知識、EB ライブラリの仕様の
概要について解説しています。
<dt>サンプルプログラム</dt>
<dd>
「解説」ではプログラムの断片だけを示すことが多いので、動作可能な
プログラムのサンプルをここで示します。
<dt>データ型の詳細</dt>
<dd>
データ型や関数、定数値などについての参照マニュアルです。
</dl>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb.html">前へ</a>] [<a href="eb-02.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

277
lib/ebu/doc/eb-02.html Normal file
View file

@ -0,0 +1,277 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-01.html">涟へ</a>] [<a href="eb-03.html">肌へ</a>] [<a href="eb.html#toc">誊肌</a>]
</p>
<hr>
<h2><a name="features">EB ライブラリの泼魔</a></h2>
<p>
涟に揭べたように、EB ライブラリは、排灰ブック (EB, EBG, EBXA, EBXA-C, S-EBXA)
と EPWING 妨及の CD-ROM 今酪に滦炳しています。
</p>
<p>
EB ライブラリは、これらの CD-ROM 今酪に滦して、肌の借妄を乖うことが
できます。
</p>
<ul>
<li>涟数办米浮瑚
<li>稿数办米浮瑚
<li>窗链办米浮瑚
<li>掘凤浮瑚
<li>剩圭浮瑚
<li>斧叫しデ〖タの艰评
<li>塑矢デ〖タの艰评
<li>メニュ〖の艰评
<li>螟侯涪山绩の艰评
<li>カラ〖哭惹デ〖タの艰评 (ただし EPWING のみ)
<li>モノクロ哭惹デ〖タの艰评
<li>嘲机デ〖タの艰评
<li>瓢茶デ〖タの艰评
</ul>
<p>
この鞠では、EB ライブラリの车妥に簇して、あらかじめ梦っておいて暮いた
ほうが紊いと蛔われるその戮の祸柿について、部爬か棱汤します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="header-files">ヘッダファイル</a></h3>
<p>
EB ライブラリには、いくつかのヘッダファイルが脱罢されています。
</p>
<dl>
<dt><code>appendix.h</code></dt>
<dd>
appendix (烧峡) に簇息した离咐、年盗を乖う。
<dt><code>binary.h</code></dt>
<dd>
バイナリデ〖タに簇息した离咐、年盗を乖う。
<dt><code>eb.h</code></dt>
<dd>
EB ライブラリの答塑ヘッダファイル。
<dt><code>error.h</code></dt>
<dd>
エラ〖コ〖ドに簇息した离咐、年盗を乖う。
<dt><code>font.h</code></dt>
<dd>
嘲机に簇息した离咐、年盗を乖う。
<dt><code>text.h</code></dt>
<dd>
テキストデ〖タ (塑矢、斧叫しなど) に簇息した离咐、年盗を乖う。
</dl>
<p>
これ笆嘲にもいくつかのファイルがインスト〖ルされますが、惧に刁げた
ヘッダファイルから粕み哈まれるもので、アプリケ〖ションプログラムが
木儡粕み哈む涩妥はありません。
</p>
<p>
アプリケ〖ションプログラムは、EB ライブラリを蝗う狠にこのヘッダファイル
をファイルの黎片烧夺で粕み哈みます。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
</pre>
</blockquote>
<p>
<code>eb.h</code> ではなく、<code>eb/eb.h</code> を粕み哈むようにして布さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="character-code">矢机コ〖ド</a></h3>
<p>
EB ライブラリでは、CD-ROM 今酪柒のデ〖タを矢机误にしてアプリケ〖ション
に畔す狠の矢机コ〖ドを惮年しています。
</p>
<p>
EBG (长嘲の排灰ブック) については、デ〖タが ISO 8859-1 (ラテン矢机 1、
ただし扩告矢机を近く) で今かれているため、デ〖タのやり艰りも ISO 8859-1
で乖います。
ただし、嘲机だけは 2 バイトで山附し、0x0101 × 0x1efe の挝拌を蝗脱します。
(嘲机挝拌の布疤 16 ビットは 0x01 × 0xfe の认跋を蝗脱します。)
</p>
<p>
EBG, EBXA-C を近いた排灰ブック、および EPWING については、デ〖タが
JIS X 0208 (泣塑胳のかな戳机) で今かれており、JIS X 0208 を 0x2121 ×
0x7e7e にマッピングし、0xa121 × 0xfe7e を嘲机挝拌にしています (布哭)。
</p>
<blockquote>
<pre>
                惧疤8ビット
                   
       00ǎāāèāāāāāèāāèāāāāāèà
         á  á     á  á     áá
       21ěāāǐāāāāāǐāāǐāāāāāǐī
         á  á     á  á     áá
         á  áJIS Xá  á 嘲机  áá
         á  á0208 á  á     áá
         á  á     á  á     áá
       7eěāāǐāāāāāǐāāǐāāāāāǐī
布疤8ビット   á  á     á  á     áá
       a1ěāāǐāāāāāǐāāǐāāāāāǐī
         á  á     á  á     áá
         á  á     á  á     áá
         á  á     á  á     áá
         á  á     á  á     áá
       feěāāǐāāāāāǐāāǐāāāāāǐī
         éāāíāāāāāíāāíāāāāāíē
</pre>
</blockquote>
<p>
EB ライブラリでは JIS X 0208 婶尸を泣塑胳 EUC (EUC-JP) にエンコ〖ド
して、アプリケ〖ションとのやり艰りも泣塑胳 EUC で乖います。
したがって、JIS X 0208 婶尸は 0xa1a1 × 0xfefe にマッピングされます。
</p>
<p>
EBXA-C (面泣ˇ泣面辑今の排灰ブック) については、デ〖タが JIS X 0208
(泣塑胳のかな戳机) と GB 2312 (面柜胳の词挛机) で今かれており、
JIS X 0208 を 0x2121 × 0x7e7e にマッピング、
GB 2312 を 0x21a1 × 0x7efe にマッピングし、
0xa121 × 0xfe7e を嘲机挝拌にしています (布哭)。
</p>
<blockquote>
<pre>
                惧疤8ビット
                   
       00ǎāāèāāāāāèāāèāāāāāèà
         á  á     á  á     áá
       21ěāāǐāāāāāǐāāǐāāāāāǐī
         á  á     á  á     áá
         á  áJIS Xá  á 嘲机  áá
         á  á0208 á  á     áá
         á  á     á  á     áá
       7eěāāǐāāāāāǐāāǐāāāāāǐī
布疤8ビット   á  á     á  á     áá
       a1ěāāǐāāāāāǐāāǐāāāāāǐī
         á  á     á  á     áá
         á  áGB   á  á     áá
         á  á2312 á  á     áá
         á  á     á  á     áá
       feěāāǐāāāāāǐāāǐāāāāāǐī
         éāāíāāāāāíāāíāāāāāíē
</pre>
</blockquote>
<p>
EB ライブラリでは、アプリケ〖ションとのやり艰りに蝗う矢机コ〖ドは、
泣塑胳 EUC および面柜胳 EUC (EUC-ZH) です。
したがって、そのままでは JIS X 0208 と GB 2312 が 0xa1a1 × 0xfefe に
マッピングされ、咀仆してしまいます。
この啼玛をどう搀闰するのかは、アプリケ〖ション娄で疯める涩妥があります
(拒しくは、<a href="eb-09.html#hook-and-character-code">≈フックと矢机コ〖ドの簇犯∽</a> を徊救のこと)。
</p>
<p>
排灰ブック、EPWING ともに、嘲机については、アプリケ〖ション娄でどう
胺うかを疯める涩妥があります。
嘲机について拒しくは <a href="eb-10.html#local-character">≈嘲机∽</a> を徊救のこと。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="compressed-book">暗教された今酪について</a></h3>
<p>
EB ライブラは、デ〖タを暗教して箭峡した今酪を胺うことができます。
海のところ、肌の 4 硷梧の暗教数恕に滦炳しています。
</p>
<dl>
<dt><code>ebzip</code> 暗教妨及</dt>
<dd>
EB ライブラリ迫极の暗教妨及です。
烧掳の <code>ebzip</code> コマンドを蝗うと、この妨及で暗教した今酪を侯れます。
<dt>EPWING V4, V5 妨及</dt>
<dd>
辉任の EPWING V4, V5 の今酪の办婶に、この妨及で暗教したものがあります。
<dt>EPWING V6 妨及</dt>
<dd>
辉任の EPWING V6 の今酪の办婶に、この妨及で暗教したものがあります。
EPWING V4, V5 妨及の猖紊房です。
<dt>S-EBXA 妨及</dt>
<dd>
辉任の S-EBXA の今酪の办婶に、この妨及で暗教したものがあります。
</dl>
<p>
デ〖タの凯墓は EB ライブラリ娄で极瓢弄に乖われるため、
アプリケ〖ションプログラムからは、アクセスしている今酪が暗教されているか
どうか尸かりません。
アプリケ〖ションプログラムは、今酪が暗教されているかどうかで借妄を恃える
涩妥はありません。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="remote-access">斌持ホスト惧の今酪について</a></h3>
<p>
バ〖ジョン 4.0 から、EB ライブラリは戮のホストの今酪にアクセスできる
ようになりました。
</p>
<p>
斌持アクセスの借妄はすべて EB ライブラリ娄で乖われますので、
アプリケ〖ションプログラムは、今酪が极尸のホスト惧にあるかどうかで、
EB ライブラリの钙び叫し缄界を恃える涩妥はありません。
</p>
<p>
ただし、戮のホストからアクセスすると、借妄庐刨は润撅に觅くなります。
そのため、跟唯紊く借妄できるよう、アプリケ〖ションの借妄数恕を供勺すべき
觉斗が栏じることはあるかも梦れません。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="system-requirements">システムの妥凤</a></h3>
<p>
アプリケ〖ションプログラムのコンパイルに脱いるコンパイラには、
ANSI (ANSI X3.159-1989, ISO/IEC 9899-1990) 滦炳のものを滦据としています。
また、システムには POSIX.1 (IEEE Std. 1003.2-1990, ISO/IEC 9945-1:1990)
洁凋ないし高垂のものを滦据としています。
</p>
<p>
笔らく EB ライブラリでは、概いコンパイラや UNIX 废システムへの滦炳も
それなりに乖われていましたが、バ〖ジョン 4.1 からは滦炳を虑ち磊っています。
泼に ANSI 滦炳のコンパイラは涩寇ですので、ご庙罢ください。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-01.html">涟へ</a>] [<a href="eb-03.html">肌へ</a>] [<a href="eb.html#toc">誊肌</a>]
</p>
</body>
</html>

322
lib/ebu/doc/eb-03.html Normal file
View file

@ -0,0 +1,322 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-02.html">前へ</a>] [<a href="eb-04.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="compilation">プログラムのコンパイル方法</a></h2>
<p>
本章では、EB ライブラリを利用したプログラムのコンパイルの仕方について、
2 通りの方法を説明します。
</p>
<p>
一つ目は、ごく私的な、小規模のプログラムをコンパイルする際に向いている
てっとり早くコンパイルするための方法です。
EB ライブラリの使い方を覚える目的で簡単なプログラムを組む際は、こちら
が良いでしょう。
</p>
<p>
二つ目は、EB ライブラリを組み込んだアプリケーションをフリーソフトウェア
としてリリースする際に向いている方法です。
EB ライブラリには、GNU Autoconf, Automake, Libtool を併用する仕組みを
用意してありますので、これらを使ったコンパイル方法について説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="compilation-simple-way">てっとり早いコンパイル方法</a></h3>
<p>
アプリケーションプログラムをコンパイルする際は、ヘッダファイルの
ディレクトリ位置を C コンパイラに教えてやる必要があるかも知れません。
一般に UNIX の C コンパイラでは、<samp>-I</samp> オプションで位置を指定
します。
</p>
<blockquote>
<pre>
cc -I/usr/local/include -c sample.c
</pre>
</blockquote>
<p>
<code>/usr/local/include/eb</code> ではなく、その一つ上を指定します
(<a href="eb-02.html#header-files">「ヘッダファイル」</a> を参照のこと)。
</p>
<p>
次に、リンクして実行バイナリを生成する工程ですが、
以下に記したライブラリの一部、もしくは全部をリンクします。
括弧内は、ライブラリのファイル名です (ただし、<code>.a</code>
<code>.so</code> といった接尾子は省略)。
</p>
<dl>
<dt>EB ライブラリ (libeb)</dt>
<dd>
EB ライブラリの本体です。このライブラリは必須です。
<dt>zlib (libz)</dt>
<dd>
圧縮と伸長を行うライブラリです
(詳しくは @url{http://www.gzip.org/zlib/})。
<code>ebzip</code> コマンドで圧縮した辞書を扱うために使います。
このライブラリは必須です。
EB ライブラリのソースコードには zlib も収録されています。
システムに zlib が インストールされていなければ、EB ライブラリを
インストールする際に、zlib も自動的にインストールされます。
<dt>gettext ライブラリ (libintl)</dt>
<dd>
メッセージの国際化機能 (NLS) を提供するライブラリです
メッセージの国際化機能を有効にして EB ライブラリをコンパイルしている
場合は、必要になるかも知れません。
gettext の実装は何種類かありますが、EB ライブラリで使用できるのは
メッセージカタログの形式が GNU gettext 互換のものだけです。
メッセージの国際化機能を有効にしている場合でも、OS の標準 C ライブラリ
として glibc を採用しているシステムでは、指定する必要はありません。
<dt>iconv ライブラリ</dt>
<dd>
文字コード変換のライブラリです。
gettext ライブラリをリンクする場合、一緒に必要となるかも知れません。
iconv の実装も何種類かあり、OS によっては最初から添付されています。
</dl>
<p>
必要なライブラリファイルの名称を、C コンパイラに指定してやります。
加えて、ファイルの置かれているディレクトリ位置を、C コンパイラに教える
必要があるかも知れません。
一般に UNIX の C コンパイラでは、<samp>-L</samp> オプションでディレクトリ
位置を指定し、<samp>-l</samp> オプションでライブラリのファイル名を指定
します。
</p>
<blockquote>
<pre>
cc sample.o -L/usr/local/lib -leb -lz -lintl -liconv
</pre>
</blockquote>
<p>
ただし、共有ライブラリをリンクする場合は、実行時におけるライブラリの
検索パスも合わせて指定する必要があるかも知れません。
</p>
<blockquote>
<pre>
cc sample.o -R/usr/local/lib -L/usr/local/lib -leb -lz -lintl -liconv
</pre>
</blockquote>
<p>
C コンパイラの使い方に関しての詳細は、C コンパイラのマニュアルを参照
して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="compilation-with-autoconf">Autoconf を併用したコンパイル方法</a></h3>
<p>
作業の前に、Autoconf, Automake, Libtool は、あらかじめインストールして
おいて下さい。
Autoconf はバージョン 2.50 以降が必要です。
</p>
<p>
まず、アプリケーションプログラムの <code>configure.ac</code>
(もしくは <code>configure.in</code>) に、次の行を加えます。
</p>
<blockquote class="program">
<pre>
eb_LIB_EB4
</pre>
</blockquote>
<p>
マクロ <code>eb_LIB_EB4</code> は、EB ライブラリの使用に必要な一切の
チェックを行い、さらに <code>configure</code> に次のオプションを追加
します。
</p>
<blockquote>
<pre>
--with-eb-conf=FILE eb.conf file is FILE [SYSCONFDIR/eb.conf]
</pre>
</blockquote>
<p>
<code>eb.conf</code> は、EB ライブラリをインストールしたときの情報を記録
したファイルで、ライブラリと一緒にインストールされます。
<code>eb_LIB_EB4</code> はこのファイルを読み込んで、C コンパイラに
渡さなければいけないオプションなどの情報を得ます。
<samp>--eb-conf-file</samp> は、<code>eb.conf</code> のファイル名を
明示的に指定するオプションです。
</p>
<p>
マクロ <code>eb_LIB_EB4</code> は、<code>eb4.m4</code> というファイルで
提供されています。
EB ライブラリを <code>/usr/local</code> にインストールし、個々のファイル
のインストール先を変更していなければ、<code>/usr/local/share/aclocal</code>
にインストールされます。
この <code>eb4.m4</code> をソースコードの適当なディレクトリの下 (たとえば
<code>m4</code>) にコピーして下さい。
</p>
<p>
<code>aclocal</code> コマンドで <code>aclocal.m4</code> を再生成する際は、
<samp>-I</samp> オプションでマクロファイルのディレクトリを指定します。
</p>
<blockquote>
<pre>
aclocal -I m4
</pre>
</blockquote>
<p>
加えて、トップディレクトリの <code>Makefile.am</code> の中にも
<code>aclocal</code> へ渡すオプションを書いておきます。
</p>
<blockquote class="program">
<pre>
ACLOCAL_AMFLAGS = -I m4
</pre>
</blockquote>
<p>
また、ソースコードのディレクトリに Libtool パッケージがまだ用意されて
いなければ、用意します。
<code>libtoolize</code> コマンドを実行して下さい。
Libtool パッケージが、ソースコードのディレクトリにコピーされます。
</p>
<blockquote>
<pre>
libtoolize
</pre>
</blockquote>
<p>
最後に、コンパイルを行うディレクトリの <code>Makefile.am</code> ファイル
<code>_LDFLAGS</code><code>INCLUDES</code> に、次のような値を追加
します。
</p>
<blockquote class="program">
<pre>
program_LDFLAGS = $(EBCONF_EBLIBS) $(EBCONF_ZLIBLIBS) $(EBCONF_INTLLIBS)
INCLUDES = $(EBCONF_EBINCS)
</pre>
</blockquote>
<p>
(<code>program_LDFLAGS</code><code>program</code> のところは、
アプリケーションプログラムの実際のコマンド名にします。)
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="debug-eb-library">EB ライブラリ本体のデバッグ</a></h3>
<p>
「自分が作ったアプリケーションが正しく動かないのは、ひょっとすると
EB ライブラリのバグが原因ではないか?」という疑問を抱き、EB ライブラリ
の挙動を確認したいと思うことがあるかも知れません。
</p>
<p>
そのような場合は、環境変数 <code>EB_DEBUG</code> をセットした状態で
アプリケーションを実行してみて下さい。
EB ライブラリは標準エラー出力に、次のようなログを (かなり大量ですが)
出力するようになります。
</p>
<blockquote>
<pre>
[EB] in: eb_set_font(book=0, font_code=0)
[EB] in: eb_load_narrow_font(book=0)
[EB] out: eb_load_narrow_font()
[EB] in: eb_load_wide_font(book=0)
[EB] out: eb_load_wide_font()
[EB] out: eb_set_font() = EB_SUCCESS
</pre>
</blockquote>
<p>
これらのログは、関数の呼び出し時の引数列、および関数からの戻り値を
示しています。
<code>ebfixlog</code> という Perl5 スクリプトを使うと、ログを整形すること
ができます。
このスクリプトは、EB ライブラリのソースコードの <code>misc</code>
ディレクトリに収められています。
</p>
<p>
<code>ebfixlog</code> は、コマンド行の引数として与えられたファイル
(引数が指定されなければ標準入力) からメッセージデータを読み込み、
次のように字下げして出力します。
</p>
<blockquote>
<pre>
[EB] in: eb_set_font(book=0, font_code=0)
[EB] in: eb_load_narrow_font(book=0)
[EB] out: eb_load_narrow_font()
[EB] in: eb_load_wide_font(book=0)
[EB] out: eb_load_wide_font()
[EB] out: eb_set_font() = EB_SUCCESS
</pre>
</blockquote>
<p>
通常 <code>ebfixlog</code> スクリプトは、zio および ebnet と呼ばれる、
EB ライブラリでファイル入出力を受け持つ処理部のログは読み捨てるように
なっています。
これにより、ログの量がかなり減ります。
</p>
<p>
zio は EB ライブラリの低レベル入出力の処理部で、頻繁に呼び出されます。
問題の原因を調べる際も、まずは読み捨てた方がライブラリの内部動作を追跡
しやすいでしょう。
</p>
<p>
<code>ebfixlog</code><samp>-z</samp> オプションを使うと、zio の
メッセージを読み捨てずに出力するようになります。
</p>
<p>
ebnet は遠隔アクセスの入出力を処理する部分で、zio よりもさらに
下位レベルに位置します。
遠隔アクセスの挙動を追跡するとき以外は、読み捨てた方が良いと思います。
</p>
<p>
<code>ebfixlog</code><samp>-n</samp> オプションを使うと、ebnet,
zio 両方のメッセージを読み捨てずに出力するようになります。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-02.html">前へ</a>] [<a href="eb-04.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

190
lib/ebu/doc/eb-04.html Normal file
View file

@ -0,0 +1,190 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-03.html">前へ</a>] [<a href="eb-05.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="init-and-exit">ライブラリの初期化と後始末</a></h2>
<p>
この章からは、EB ライブラリのプログラミングについての解説になります。
</p>
<p>
まず、アプリケーションプログラムから EB ライブラリを利用するには、
最初にライブラリを初期化する必要があります。
</p>
<p>
ライブラリの初期化を行うには、<code>eb_initialize_library()</code>
という関数を呼び出します。
</p>
<blockquote class="program">
<pre>
if (eb_initialize_library() != EB_SUCCESS) {
printf("eb_initialize_library() failed\n");
exit(1);
}
</pre>
</blockquote>
<p>
同様に、ライブラリを使い終わったら、<code>eb_finalize_library()</code>
という関数を呼び出して後始末をします。
</p>
<blockquote class="program">
<pre>
eb_finalize_library();
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="init-and-exit-sample">サンプルプログラム</a></h3>
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2001-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* initexit
* 例:
* initexit
* 説明:
* EB ライブラリの初期化、後始末をしてみます。
* プログラムの外側から見れば、これは何の意味もない動作です。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
/* EB ライブラリを初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
exit(1);
}
/* EB ライブラリの利用を終了。*/
eb_finalize_library();
exit(0);
}
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="init-and-exit-functions">関数の詳細</a></h3>
<p>
この項で説明している関数を使うには、<code>eb/eb.h</code> を読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:initialize_library"><code>EB_Error_Code eb_initialize_library ()</code></a></h4>
<p>
関数 <code>eb_initialize_library()</code> は、EB ライブラリを初期化します。
アプリケーションプログラムは、EB ライブラリの他の関数を呼ぶ前に、必ず
一回だけこの関数を呼ぶ必要があります。
</p>
<p>
メッセージの国際化機能 (NLS) を有効にして EB ライブラリをコンパイル
した場合、<code>eb_initialize_library()</code><code>bindtextdomain()</code>
呼び出します。
したがって、アプリケーションプログラムが <code>setlocale()</code>
呼び出すのは、この関数を呼び出す前である必要があります。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、原因を示すエラーコードを返します。
</p>
<p>
ライブラリを初期化せずに、EB ライブラリの他の関数を呼んだ場合の動作は
未定義です。
また、すでに初期化を済ませた状態で、再度 <code>eb_initialize_library()</code>
を呼んでもいけません。
呼んだ場合の動作は未定義です。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:finalize_library"><code>void eb_finalize_library ()</code></a></h4>
<p>
関数 <code>eb_finalize_library()</code> は、EB ライブラリを使い終わった
際の後始末を行います。
ただし、アプリケーションプログラム側で使用した
<code>EB_Book</code><code>EB_Hookset</code><code>EB_Appendix</code> オブジェクトの後始末は行いません。
オブジェクトを後始末するには、それぞれ専用の関数
<code>eb_finalize_book()</code><code>eb_finalize_hookset()</code>
<code>eb_finalize_appendix()</code> を各オブジェクトに対して別途
呼んでやる必要があります。
</p>
<p>
ライブラリの後始末をした後は、EB ライブラリのいかなる関数も呼んでは
いけません。
呼んだ場合の動作は未定義です。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-03.html">前へ</a>] [<a href="eb-05.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

561
lib/ebu/doc/eb-05.html Normal file
View file

@ -0,0 +1,561 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-04.html">前へ</a>] [<a href="eb-06.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="eb_book">CD-ROM 書籍と <code>EB_Book</code> オブジェクト</a></h2>
<p>
EB ライブラリでは、CD-ROM 書籍へのアクセスは、すべて <code>EB_Book</code>
のオブジェクトを介して行います。
したがって、ほとんどのアプリケーションプログラムは、本章で記述している
処理を必要とするはずです。
</p>
<p>
本章では <code>EB_Book</code> オブジェクトの初期化、後始末といった基本的な
取り扱い方について説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_book-explanation"><code>EB_Book</code> オブジェクト</a></h3>
<p>
CD-ROM 書籍へアクセスするには、まず <code>EB_Book</code> 型のオブジェクトを
用意します。
同時に複数の CD-ROM 書籍にアクセスするなら、書籍一冊毎にオブジェクトを
作る必要があります。
</p>
<blockquote class="program">
<pre>
EB_Book book;
</pre>
</blockquote>
<p>
もちろん、オブジェクトの領域は、<code>malloc()</code> で確保しても
構いません。
</p>
<blockquote class="program">
<pre>
EB_Book *book_pointer;
book_pointer = (EB_Book *) malloc(sizeof(EB_Book));
</pre>
</blockquote>
<p>
<code>EB_Book</code> オブジェクトの中身 (変数 <code>book</code> の中身
および <code>book_pointer</code> の指す領域) はまだ初期化されていませんので、
次の要領でオブジェクトを初期化します。
</p>
<blockquote class="program">
<pre>
eb_initialize_book(&amp;book);
eb_initialize_book(book_pointer);
</pre>
</blockquote>
<p>
<code>eb_initialize()</code> へ渡す引数は <code>EB_Book</code> オブジェクト
へのポインタであって、<code>EB_Book</code> オブジェクトそのものでは
ないことに注意して下さい。
(EB ライブラリの他の関数も、すべてオブジェクトをポインタで渡します。)
</p>
<p>
CD-ROM 書籍を使うには、続いて <code>EB_Book</code> オブジェクトを
CD-ROM 書籍の実体に結び付けます。
これは、関数 <code>eb_bind()</code> によって行います。
</p>
<blockquote>
<pre>
EB_Book            CD-ROM書籍
オブジェクト          ┌────────────┐
┌───┐           │            │
│   ┝━━━━━━━━━━━┥ /mnt/cdrom │
└───┘ eb_bind() │            │
                └────────────┘
</pre>
</blockquote>
<p>
実際のプログラムでは、次のようにします。
</p>
<blockquote class="program">
<pre>
if (eb_bind(&amp;book, "/mnt/cdrom") != EB_SUCCESS) {
printf("eb_bind() failed\n");
return;
}
</pre>
</blockquote>
<p>
<code>eb_bind()</code> に渡す書籍のパス (この例では <code>/mnt/cdrom</code>)
は書籍のトップディレクトリ、つまり <code>catalog</code> または
<code>catalogs</code> ファイルのあるディレクトリを指定します。
</p>
<p>
<code>EB_Book</code> オブジェクトを使い終わったら、
<code>eb_finalize_book()</code> を呼んで後始末をします。
オブジェクトは書籍との結び付きを解かれた状態に戻り、内部で割り当てられた
メモリは解放され、開いていたファイルもすべて閉じられます。
</p>
<blockquote class="program">
<pre>
eb_finalize_book(&amp;book);
eb_finalize_book(book_pointer);
</pre>
</blockquote>
<p>
オブジェクトの領域を <code>malloc()</code> で確保した場合は、
<code>eb_finalize_book()</code> を呼んだ後ならば、オブジェクトの領域を
安全に解放することができます。
</p>
<blockquote class="program">
<pre>
free(book_pointer);
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_bind-to-remote-host">遠隔ホストへの <code>eb_bind()</code></a></h3>
<p>
前節で説明した <code>eb_bind()</code> を用いて、<code>EB_Book</code>
オブジェクトを遠隔ホストの書籍に結びつけることができます。
これには、書籍のパスの代わりに、遠隔アクセス用の識別子を指定します。
識別子は、次のような形式をとります。
</p>
<blockquote>
<pre>
ebnet://<var>ホスト</var>:<var>ポート</var>/<var>書籍名</var>
</pre>
</blockquote>
<p>
<var>ホスト</var> は遠隔ホストの IP アドレスもしくはホスト名です。
ただし、IPv6 アドレスを指定する場合は、アドレスを <code>[</code>
<code>]</code> で囲む必要があります。
<var>ポート</var> は、そのホストが待ち受けているポートの番号です。
ホストが待ち受けているポートが標準の 22010 番であれば、<var>:ポート</var>
の部分は省略可能です。
</p>
<p>
以下に <code>eb_bind()</code> のコード例を記します。
</p>
<blockquote class="program">
<pre>
if (eb_bind(&amp;book, "ebnet://localhost/cdrom") != EB_SUCCESS) {
printf("eb_bind() failed\n");
return;
}
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_book-sample">サンプルプログラム</a></h3>
<p>
このサンプルプログラムでは、CD-ROM 書籍の種類を調べるために、
<code>eb_disc_code()</code> という関数を使用しています。
この関数については、<a href="eb-05.html#eb_book-functions">「関数の詳細」</a> を参照のこと。
</p>
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* disctype &lt;book-path&gt;
* 例:
* disctype /cdrom
* 説明:
* &lt;book-path&gt; で指定された CD-ROM 書籍の種類が、EB か EPWING か
* を調べて表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Disc_Code disc_code;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path\n", argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
eb_initialize_book(&amp;book);
/* `book' を書籍に結び付ける。失敗したら終了。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 書籍の種類を調べて表示。*/
error_code = eb_disc_type(&amp;book, &amp;disc_code);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get disc type, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
if (disc_code == EB_DISC_EB) {
fputs("EB\n", stdout);
} else if (disc_code == EB_DISC_EPWING) {
fputs("EPWING\n", stdout);
} else {
fputs("unknown\n", stdout);
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_book-data-types">データ型の詳細</a></h3>
<p>
この節で説明しているデータ型を使うには、次のようにヘッダファイルを
読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:Book"><code>EB_Book</code></a></h4>
<p>
<code>EB_Book</code> 型は、一冊の CD-ROM 書籍を表します。
CD-ROM 書籍へのアクセスは、すべてこの型のオブジェクトを介して行います。
同時に複数の CD-ROM 書籍にアクセスする際は、書籍一冊毎にオブジェクトを
作る必要があります。
</p>
<p>
<code>EB_Book</code> オブジェクトの操作は、すべて EB ライブラリが用意
している関数で行います。
アプリケーションプログラムは、直接 <code>EB_Book</code> オブジェクトの
メンバを参照したり、セットしたりすべきではありません。
</p>
<p>
<code>EB_Book</code> オブジェクトを使用する際は、まずそのオブジェクトに
対して <code>eb_initialize_book()</code> を呼んで初期化しなくては
なりません。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:Disc_Code"><code>EB_Disc_Code</code></a></h4>
<p>
データ型 <code>EB_Disc_Code</code> は、CD-ROM 書籍の形式コードを表します。
現在のところ、次の値が定義されています。
</p>
<dl>
<dt><code>EB_DISC_EB</code></dt>
<dd>
電子ブック (EB, EBG, EBXA, EBXA-C, S-EBXA) であることを表します。
<dt><code>EB_DISC_EPWING</code></dt>
<dd>
EPWING であることを表します。
<dt><code>EB_DISC_INVALID</code></dt>
<dd>
不正な形式コード値を表します。
</dl>
<p>
この型は符合付き整数型の別名として定義されていますので、2 つのコードを
2 項演算子 <code>==</code><code>!=</code> で一致比較することができます。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:EB_Character_Code"><code>EB_Character_Code</code></a></h4>
<p>
データ型 <code>EB_Character_Code</code> は、CD-ROM 書籍で使用される
文字コードを表します。
現在のところ、次の値が定義されています。
</p>
<dl>
<dt><code>EB_CHARCODE_ISO8859_1</code></dt>
<dd>
ISO 8859-1 (ラテン文字 1) を使用していることを表します。
電子ブックの EBG はこれです。
<dt><code>EB_CHARCODE_JISX0208</code></dt>
<dd>
JIS X 0208 (日本語のかな漢字) を使用していることを表します。
EBG, EBXA-C 以外の電子ブック、および EPWING はすべてこれです。
<dt><code>EB_CHARCODE_JISX0208_GB2312</code></dt>
<dd>
JIS X 0208 (日本語のかな漢字) と GB 2312 (中国語の簡体字) を併用している
ことを表します。
電子ブックの EBXA-C はこれです。
<dt><code>EB_CHARCODE_INVALID</code></dt>
<dd>
不正な文字コード値を表します。
</dl>
<p>
この型は符合付き整数型の別名として定義されていますので、2 つのコードを
2 項演算子 <code>==</code><code>!=</code> で一致比較することができます。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_book-functions">関数の詳細</a></h3>
<p>
この節で説明している関数を使うには、次のようにヘッダファイルを読み込んで
下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:initialize_book"><code>void eb_initialize_book (EB_Book *<var>book</var>)</code></a></h4>
<p>
関数 <code>eb_initialize_book()</code> は、<var>book</var> の指す
<code>EB_Book</code> オブジェクトを初期化します。
<code>EB_Book</code> オブジェクトに対して EB ライブラリの他の関数を呼ぶ前に、
必ずそのオブジェクトを初期化しなくてはなりません。
初期化していないオブジェクトに対して、EB ライブラリの他の関数を呼んだ
場合の動作は未定義です。
また、すでに初期化したオブジェクトに対して、再度
<code>eb_initialize_book()</code> を呼んではいけません。
呼んだ場合の動作は未定義です。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:bind"><code>EB_Error_Code eb_bind (EB_Book *<var>book</var>, const char *<var>path</var>)</code></a></h4>
<p>
関数 <code>eb_bind()</code> は、<var>book</var> の指す <code>EB_Book</code>
オブジェクトを、パス <var>path</var> にある CD-ROM 書籍に結び付けます。
パスには、書籍のトップディレクトリか遠隔アクセス識別子を指定します。
書籍のトップディレクトリとは、<code>catalog</code> あるいは
<code>catalogs</code> ファイルの存在するディレクトリを指します。
</p>
<p>
オブジェクトがすでに書籍に結び付いていた場合、その書籍との結び付きを
解いてから、<var>path</var> にある書籍に結び付けます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
このとき、副本は未選択の状態になります。
失敗すると、オブジェクトを書籍との結び付きを解かれた状態にして、原因
を示すエラーコードを返します。
</p>
<p>
<var>path</var> は、<code>EB_MAX_PATH_LENGTH</code> バイトに収まていなくては
なりません。
さらに、<var>path</var> が相対パスのときは、絶対パスに変換した結果がこの長さ
に収まっていなくてはなりません。
これを超えると、<code>EB_ERR_TOO_LONG_FILE_NAME</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:finalize_book"><code>void eb_finalize_book (EB_Book *<var>book</var>)</code></a></h4>
<p>
関数 <code>eb_finalize_book()</code> は、<var>book</var> が指す
<code>EB_Book</code> オブジェクトの後始末を行います。
</p>
<p>
オブジェクトが割り当てて管理していたメモリはすべて解放され、
ファイルディスクリプタもすべて閉じられます。
オブジェクトが書籍と結び付いていた場合は、結び付きが解かれます。
</p>
<p>
後始末をしたオブジェクトに対して <code>eb_bind()</code> を呼ぶことで、
オブジェクトを再利用することができます。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:is_bound"><code>int eb_is_bound (EB_Book *<var>book</var>)</code></a></h4>
<p>
関数 <code>eb_is_bound()</code> は、<var>book</var> が書籍に結び付いているか
どうかを調べます。
結び付いていれば 1 を返し、そうでなければ 0 を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:path"><code>EB_Error_Code eb_path (EB_Book *<var>book</var> const char *<var>path</var>)</code></a></h4>
<p>
関数 <code>eb_path()</code> は、<var>book</var> に結び付いている書籍のパス
もしくは遠隔アクセス識別子を、<var>path</var> の指す領域に書き込みます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>path</var> の指す領域に空文字列を書き込み、原因を示す
エラーコードを返します。
</p>
<p>
<var>book</var> は、あらかじめ書籍に結び付いている必要があります。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<p>
<var>path</var> に書き込むパス名のバイト数は、最長で
<code>EB_MAX_PATH_LENGTH</code> になります。
この長さは、末尾のナル文字を含みません。
関数が返すパスは正規化された形になっているので、<code>eb_bind()</code>
渡したときのものと同じとは限りません。
たとえば、相対パスだった場合は、絶対パスに変換されます。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:disc_type"><code>EB_Error_Code eb_disc_type (EB_Book *<var>book</var>, EB_Disc_Code *<var>disc_code</var>)</code></a></h4>
<p>
関数 <code>eb_disc_type()</code> は、<var>book</var> のディスクの形式を
<var>disc_code</var> の指す領域に書き込みます。
書き込むディスクの形式の値は、<code>EB_Disc_Code</code>
(<a href="eb-05.html#eb_book-data-types">「[CD-ROM 書籍と <code>EB_Book</code> オブジェクト] データ型の詳細」</a> を参照のこと)
のいずれかの定数値です。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>disc_code</var> の指す領域に <code>EB_DISC_INVALID</code>
を書き込み、原因を示すエラーコードを返します。
</p>
<p>
<var>book</var> は、あらかじめ書籍に結び付いていなければなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:character_code"><code>EB_Error_Code eb_character_code (EB_Book *<var>book</var>, EB_Character_Code *<var>character_code</var>)</code></a></h4>
<p>
関数 <code>eb_character_code()</code> は、<var>book</var> が書かれている
文字コードを <var>character_code</var> の指す領域に書き込みます。
書き込む文字コードの値は、<code>EB_Character_Code</code>
(<a href="eb-05.html#eb_book-data-types">「[CD-ROM 書籍と <code>EB_Book</code> オブジェクト] データ型の詳細」</a> を参照のこと)
のいずれかの定数値です。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>character_code</var> の指す領域に
<code>EB_CHARCODE_INVALID</code> を書き込み、原因を示すエラーコードを
返します。
</p>
<p>
<var>book</var> は、あらかじめ書籍に結び付いていなければなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-04.html">前へ</a>] [<a href="eb-06.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

787
lib/ebu/doc/eb-06.html Normal file
View file

@ -0,0 +1,787 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-05.html">前へ</a>] [<a href="eb-07.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="error-handling">エラー処理</a></h2>
<p>
EB ライブラリの関数の呼び出しは、常に成功するとは限りません。
たとえば、<code>EB_Book</code> オブジェクトを書籍に結びつける関数
<code>eb_bind()</code> には、引数として書籍のトップディレクトリを渡しますが、
存在しないディレクトリを指定した場合、処理は失敗に終わります。
</p>
<p>
一般にこうした事象は、ユーザが誤ったパスを指定したときに起こりますが、
メモリ不足のように、ユーザのミスが原因ではない失敗も起こりえます。
</p>
<p>
本章では、関数の呼び出しが失敗した場合の処理について説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="error-code-and-message">エラーコードとエラーメッセージ</a></h3>
<p>
EB ライブラリの関数の多くは、戻り値として <code>EB_Error_Code</code>
型の値を返します。
処理が成功したときに返す値は <code>EB_SUCCESS</code> ですが、失敗したときは
エラーの原因に応じて様々な値を返します。
このため、EB ライブラリでは次のような <code>EB_SUCCESS</code> との比較処理
がよく行われます。
</p>
<blockquote class="program">
<pre>
EB_Error_Code error_code;
error_code = eb_bind(&amp;book, "/mnt/cdrom");
if (error_code != EB_SUCCESS) {
printf("eb_bind() failed\n");
return;
}
</pre>
</blockquote>
<p>
エラーコードの値は、関数 <code>eb_error_message()</code> によって
エラーメッセージに変換することもできます。
こうすることで、エラーの原因をアプリケーションプログラムのユーザに
もう少し分かりやすく伝えることができます。
</p>
<blockquote class="program">
<pre>
error_code = eb_bind(&amp;book, "/mnt/cdrom");
if (error_code != EB_SUCCESS) {
printf("eb_bind() failed, %s\n",
eb_error_message(error_code));
return;
}
</pre>
</blockquote>
<p>
<code>error_code</code><code>EB_ERR_TOO_LONG_FILENAME</code>
セットされていれば、次のようなエラーメッセージが出力されます。
</p>
<blockquote>
<pre>
too long filename
</pre>
</blockquote>
<p>
あるいは、次のように日本語のメッセージかも知れません。
</p>
<blockquote>
<pre>
ファイル名が長すぎます
</pre>
</blockquote>
<p>
メッセージの国際化機能 (NLS) を無効にして EB ライブラリをコンパイル
した場合は、常に英語のメッセージが返ります。
有効にした場合は、ロケールの設定によってどちらの言語のメッセージが
返るかが決まります。
</p>
<p>
本書ではプログラムを簡潔にするために、エラー処理は最低限しか行って
いません。
けれども一般のアプリケーションプログラムでは、関数の呼び出しが成功
したかどうかを常にチェックし、処理が失敗した際はエラーメッセージを出力
して、ユーザにエラーの原因を伝えるのが望ましいといえます。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="tolerance-to-error">エラーに対する寛容さ</a></h3>
<p>
<code>EB_Book</code> オブジェクトは、状態に関するパラメタをいくつか持って
います。
オブジェクトが CD-ROM 書籍に結び付いているかどうかも、こうしたパラメタ
のうちの一つです。
</p>
<p>
引数に <code>EB_Book</code> オブジェクトへのポインタを取る関数には、
あらかじめオブジェクトの特定のパラメタがセットされていることを前提と
しているものもあります。
たとえば、<code>eb_path()</code> は、オブジェクトが書籍に結び付いていること
を前提としています。
では、もしも書籍に結び付いていないオブジェクトを <code>eb_path()</code>
渡したらどうなるでしょうか。
</p>
<blockquote class="program">
<pre>
EB_Book book;
EB_Error_Code error_code;
char path[EB_MAX_PATH_LENGTH + 1];
eb_initialize_library();
eb_initialize(&amp;book);
error_code = eb_path(&amp;book, path); /* どうなる? */
</pre>
</blockquote>
<p>
この場合、<code>eb_path()</code><code>EB_ERR_UNBOUND_BOOK</code>
返します。
EB ライブラリの関数は、必要なパラメタがセットされていないオブジェクトを
検知して拒絶します。
</p>
<p>
しかしながら、参照マニュアルで明示されている場合を除いて、EB ライブラリ
の関数は、与えられたポインタが <code>NULL</code> かどうかまでは調べません。
次のようなことをすると、プログラムを異常終了させてしまいます。
</p>
<blockquote class="program">
<pre>
eb_bind(NULL, "/mnt/cdrom"); /* 異常終了! */
eb_bind(&amp;book, NULL); /* これも異常終了! */
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="error-data-types">データ型の詳細</a></h3>
<p>
この節で説明しているデータ型を使うには、次のようにヘッダファイルを
読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/error.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:Error_Code"><code>EB_Error_Code</code></a></h4>
<p>
データ型 <code>EB_Error_Code</code> は、EB ライブラリのエラーコードを
表します。
この型は符合付き整数型の別名として定義されていますので、2 つのコードを
2 項演算子 <code>==</code><code>!=</code> で一致比較することができます。
</p>
<p>
EB ライブラリでは、全部で <code>EB_NUMBER_OF_ERRORS</code> 個の
フックコードを定義しています。
エラーコードの一覧については、
次の節 (<a href="eb-06.html#error-code-list">「エラーコードの一覧」</a> を参照のこと)
を参照して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="error-code-list">エラーコードの一覧</a></h3>
<p>
この節で説明しているエラーコードを使うには、次のようにヘッダファイルを
読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/error.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:SUCCESS">定数 <code>EB_SUCCESS</code></a></h4>
<p>
成功。
エラーは起きていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_MEMORY_EXHAUSTED">定数 <code>EB_ERR_MEMORY_EXHAUSTED</code></a></h4>
<p>
EB ライブラリが <code>malloc()</code> を呼び出したが、<code>NULL</code>
が返ってきた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_TOO_LONG_FILE_NAME">定数 <code>EB_ERR_TOO_LONG_FILE_NAME</code></a></h4>
<p>
与えられた書籍のパス名が長すぎる。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_BAD_FILE_NAME">定数 <code>EB_ERR_BAD_FILE_NAME</code></a></h4>
<p>
書籍のパス名が不正である。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_BAD_DIR_NAME">定数 <code>EB_ERR_BAD_DIR_NAME</code></a></h4>
<p>
ディレクトリ名が不正である。
(EB ライブラリの内部処理用なので、
このエラーコードがアプリケーションプログラムに返ることはありません。)
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_TOO_LONG_WORD">定数 <code>EB_ERR_TOO_LONG_WORD</code></a></h4>
<p>
与えられた検索語は長すぎる。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_BAD_WORD">定数 <code>EB_ERR_BAD_WORD</code></a></h4>
<p>
与えられた検索語に不正な文字が含まれている。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_EMPTY_WORD">定数 <code>EB_ERR_EMPTY_WORD</code></a></h4>
<p>
与えられた検索語は空である。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_GETCWD">定数 <code>EB_ERR_FAIL_GETCWD</code></a></h4>
<p>
<code>getcwd()</code> もしくは <code>getwd()</code> が失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_CAT">定数 <code>EB_ERR_FAIL_OPEN_CAT</code></a></h4>
<p>
EB ライブラリが、書籍のカタログファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_CATAPP">定数 <code>EB_ERR_FAIL_OPEN_CATAPP</code></a></h4>
<p>
EB ライブラリが、appendix のカタログファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_TEXT">定数 <code>EB_ERR_FAIL_OPEN_TEXT</code></a></h4>
<p>
EB ライブラリが、書籍の本文ファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_FONT">定数 <code>EB_ERR_FAIL_OPEN_FONT</code></a></h4>
<p>
EB ライブラリが、書籍の外字ファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_APP">定数 <code>EB_ERR_FAIL_OPEN_APP</code></a></h4>
<p>
EB ライブラリが、appendix ファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_OPEN_BINARY">定数 <code>EB_ERR_FAIL_OPEN_BINARY</code></a></h4>
<p>
EB ライブラリが、バイナリデータファイルを開くことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_CAT">定数 <code>EB_ERR_FAIL_READ_CAT</code></a></h4>
<p>
EB ライブラリが、書籍のカタログファイルを読み込むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_CATAPP">定数 <code>EB_ERR_FAIL_READ_CATAPP</code></a></h4>
<p>
EB ライブラリが、appendix のカタログファイルを読み込むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_TEXT">定数 <code>EB_ERR_FAIL_READ_TEXT</code></a></h4>
<p>
EB ライブラリが、書籍の本文ファイルを読むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_FONT">定数 <code>EB_ERR_FAIL_READ_FONT</code></a></h4>
<p>
EB ライブラリが、書籍の外字ファイルを読み込むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_APP">定数 <code>EB_ERR_FAIL_READ_APP</code></a></h4>
<p>
EB ライブラリが、appendix のメインファイルを読み込むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_READ_BINARY">定数 <code>EB_ERR_FAIL_READ_BINARY</code></a></h4>
<p>
EB ライブラリが、書籍のバイナリデータファイルを読み込むことに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_CAT">定数 <code>EB_ERR_FAIL_SEEK_CAT</code></a></h4>
<p>
EB ライブラリが、書籍のカタログファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_CATAPP">定数 <code>EB_ERR_FAIL_SEEK_CATAPP</code></a></h4>
<p>
EB ライブラリが、appendix のカタログファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_TEXT">定数 <code>EB_ERR_FAIL_SEEK_TEXT</code></a></h4>
<p>
EB ライブラリが、書籍の本文ファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_FONT">定数 <code>EB_ERR_FAIL_SEEK_FONT</code></a></h4>
<p>
EB ライブラリが、書籍の外字ファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_APP">定数 <code>EB_ERR_FAIL_SEEK_APP</code></a></h4>
<p>
EB ライブラリが、appendix のメインファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_FAIL_SEEK_BINARY">定数 <code>EB_ERR_FAIL_SEEK_BINARY</code></a></h4>
<p>
EB ライブラリが、書籍のバイナリデータファイルのシークに失敗した。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_CAT">定数 <code>EB_ERR_UNEXP_CAT</code></a></h4>
<p>
EB ライブラリが、書籍のカタログファイル内で、期待とは異なるデータ列を
見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_CATAPP">定数 <code>EB_ERR_UNEXP_CATAPP</code></a></h4>
<p>
EB ライブラリが、appendix のカタログファイル内で、想定外のデータ列を
見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_TEXT">定数 <code>EB_ERR_UNEXP_TEXT</code></a></h4>
<p>
EB ライブラリが、書籍の本文ファイル内で、想定外のデータ列を見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_FONT">定数 <code>EB_ERR_UNEXP_FONT</code></a></h4>
<p>
EB ライブラリが、書籍の外字ファイル内で、想定外のデータ列を見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_APP">定数 <code>EB_ERR_UNEXP_APP</code></a></h4>
<p>
EB ライブラリが、appendix のメインファイル内で、想定外のデータ列を
見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNEXP_BINARY">定数 <code>EB_ERR_UNEXP_BINARY</code></a></h4>
<p>
EB ライブラリが、書籍のバイナリデータファイル内で、想定外のデータ列を
見つけた。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNBOUND_BOOK">定数 <code>EB_ERR_UNBOUND_BOOK</code></a></h4>
<p>
呼び出された EB ライブラリの関数は、書籍に結び付けられた
<code>EB_Book</code> オブジェクトを引数にとるが、与えられたオブジェクトは
書籍に結び付けられていなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNBOUND_APP">定数 <code>EB_ERR_UNBOUND_APP</code></a></h4>
<p>
呼び出された EB ライブラリの関数は、appendix に結び付けられた
<code>EB_Appendix</code> オブジェクトを引数にとるが、与えられた
オブジェクトは appendix に結び付けられて
いなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUB">定数 <code>EB_ERR_NO_SUB</code></a></h4>
<p>
書籍は副本を一つも持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_APPSUB">定数 <code>EB_ERR_NO_APPSUB</code></a></h4>
<p>
appendix は副本を一つも持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_FONT">定数 <code>EB_ERR_NO_FONT</code></a></h4>
<p>
選択中の副本は、外字を一種類も持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_TEXT">定数 <code>EB_ERR_NO_TEXT</code></a></h4>
<p>
選択中の副本は、本文データを持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_CUR_SUB">定数 <code>EB_ERR_NO_CUR_SUB</code></a></h4>
<p>
呼び出された関数は、副本が選択されている <code>EB_Book</code>
オブジェクトを引数としてとるが、与えられたオブジェクトでは選択されて
いなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_CUR_APPSUB">定数 <code>EB_ERR_NO_CUR_APPSUB</code></a></h4>
<p>
呼び出された関数は、副本が選択されている <code>EB_Appendix</code>
オブジェクトを引数にとるが、与えられたオブジェクトでは選択されて
いなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_CUR_FONT">定数 <code>EB_ERR_NO_CUR_FONT</code></a></h4>
<p>
呼び出された関数は、外字が選択されている <code>EB_Book</code>
オブジェクトを引数にとるが、与えられたオブジェクトでは選択されて
いなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_CUR_BINARY">定数 <code>EB_ERR_NO_CUR_BINARY</code></a></h4>
<p>
呼び出された関数は、バイナリデータの読み込み要求をセットしている
<code>EB_Book</code> オブジェクトを引数にとるが、与えられたオブジェクトでは
セットされていなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_SUB">定数 <code>EB_ERR_NO_SUCH_SUB</code></a></h4>
<p>
<code>EB_Book</code> オブジェクトと副本コードが関数に与えられたが、
<code>EB_Book</code> オブジェクトに結び付けられている書籍は、その
副本コードに一致する副本を持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_APPSUB">定数 <code>EB_ERR_NO_SUCH_APPSUB</code></a></h4>
<p>
<code>EB_Appendix</code> オブジェクトと副本コードが関数に与えられたが、
<code>EB_Appendix</code> オブジェクトに結び付けられている appendix は、
その副本コードに一致する副本を持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_FONT">定数 <code>EB_ERR_NO_SUCH_FONT</code></a></h4>
<p>
<code>EB_Book</code> オブジェクトと外字の縦のサイズが関数に与えられたが、
<code>EB_Book</code> オブジェクトに結びつけられていた書籍で選択中の副本は、
そのサイズの外字を持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_CHAR_BMP">定数 <code>EB_ERR_NO_SUCH_CHAR_BMP</code></a></h4>
<p>
<code>EB_Book</code> オブジェクトと文字番号が関数に与えられたが、
<code>EB_Book</code> オブジェクトに結び付けられていた書籍で選択中の副本は、
その番号の外字のビットマップデータを持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_CHAR_TEXT">定数 <code>EB_ERR_NO_SUCH_CHAR_TEXT</code></a></h4>
<p>
<code>EB_Appendix</code> オブジェクトと文字番号が関数に与えられたが、
<code>EB_Appendix</code> オブジェクトに結び付けられている appendix で
選択中の副本は、その番号の外字の代替文字列を持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_SEARCH">定数 <code>EB_ERR_NO_SUCH_SEARCH</code></a></h4>
<p>
選択中の副本は、指定された検索メソッドを持っていないので、検索は行えない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_HOOK">定数 <code>EB_ERR_NO_SUCH_HOOK</code></a></h4>
<p>
不正なフックコードが関数に渡された。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_BINARY">定数 <code>EB_ERR_NO_SUCH_BINARY</code></a></h4>
<p>
指定された位置に、指定された形式のバイナリデータは存在しない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_DIFF_CONTENT">定数 <code>EB_ERR_DIFF_CONTENT</code></a></h4>
<p>
アプリケーションプログラムからテキストデータの取得を要求されたが、指定
されたテキストデータの種類が、前回リクエストされたときと一致していない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_PREV_SEARCH">定数 <code>EB_ERR_NO_PREV_SEARCH</code></a></h4>
<p>
<code>eb_hit_list()</code> が呼び出されたが、アプリケーションプログラム
から前もって検索のリクエストがなされていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_MULTI_ID">定数 <code>EB_ERR_NO_SUCH_MULTI_ID</code></a></h4>
<p>
<code>EB_Book</code> オブジェクトと複合検索コードが関数に渡されたが、
結び付けられた書籍で選択中の副本は、そのコードに一致する複合検索を持って
いない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_ENTRY_ID">定数 <code>EB_ERR_NO_SUCH_ENTRY_ID</code></a></h4>
<p>
<code>EB_Book</code> オブジェクトと複合検索エントリコードが関数に
渡されたが、結び付けられた書籍で選択中の副本は、そのエントリコードに
一致する複合検索エントリを持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_TOO_MANY_WORDS">定数 <code>EB_ERR_TOO_MANY_WORDS</code></a></h4>
<p>
アプリケーションプログラムから条件検索もしくは複合検索の検索をリクエスト
されたが、検索語の個数が多すぎる。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_WORD">定数 <code>EB_ERR_NO_WORD</code></a></h4>
<p>
アプリケーションプログラムから条件検索もしくは複合検索の検索をリクエスト
されたが、検索語がすべて空である。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_CANDIDATES">定数 <code>EB_ERR_NO_CANDIDATES</code></a></h4>
<p>
<code>eb_multi_entry_candidates()</code> が呼び出されたが、
指定された複合検索エントリは、検索語の候補一覧データを持っていない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_END_OF_CONTENT">定数 <code>EB_ERR_END_OF_CONTENT</code></a></h4>
<p>
<code>eb_forward_text()</code> あるいは <code>eb_backward_text()</code>
で本文の頭出しを行おうとしたが、すでに本文の末尾ないし先頭に達していて、
それ以上先に進むことができなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_PREV_SEEK">定数 <code>EB_ERR_NO_PREV_SEEK</code></a></h4>
<p>
あらかじめ <code>eb_seek_text()</code> でシークを行っていない状態で、
テキストデータの読み込みや頭出しを行おうとした。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_EBNET_UNSUPPORTED">定数 <code>EB_ERR_EBNET_UNSUPPORTED</code></a></h4>
<p>
この EB ライブラリは、遠隔ホストへのアクセスには対応していない。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_EBNET_FAIL_CONNECT">定数 <code>EB_ERR_EBNET_FAIL_CONNECT</code></a></h4>
<p>
遠隔ホストへのアクセスを試みたが、サーバ (EBNETD) に接続できなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_EBNET_SERVER_BUSY">定数 <code>EB_ERR_EBNET_SERVER_BUSY</code></a></h4>
<p>
遠隔ホストへの接続を行ったが、書籍にアクセスしているクライアントの数が
すでに上限に達しているため、その書籍を利用できなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_EBNET_NO_PERMISSION">定数 <code>EB_ERR_EBNET_NO_PERMISSION</code></a></h4>
<p>
遠隔ホストへの接続を行ったが、その書籍への利用権限がないため、サーバ
からアクセスを拒否された。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_UNBOUND_BOOKLIST">定数 <code>EB_ERR_UNBOUND_BOOKLIST</code></a></h4>
<p>
呼び出された EB ライブラリの関数は、遠隔ホストに結び付けられた
<code>EB_BookList</code> オブジェクトを引数にとるが、与えられたオブジェクト
は遠隔ホストに結び付けられていなかった。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="const:ERR_NO_SUCH_BOOK">定数 <code>EB_ERR_NO_SUCH_BOOK</code></a></h4>
<p>
<code>EB_BookList</code> オブジェクトと書籍の要素番号を関数に渡されたが、
<code>EB_BookList</code> に結び付けられた遠隔ホスト上には、その要素番号に
該当する書籍は存在しない。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="error-functions">関数の詳細</a></h3>
<p>
この節で説明している関数を使うには、次のようにヘッダファイルを読み込んで
下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/error.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:error_string"><code>const char *eb_error_string (EB_Error_Code <var>error_code</var>)</code></a></h4>
<p>
関数 <code>eb_error_string()</code> は、エラーコード <var>error_code</var>
を文字列に変換したものを返します。
文字列の文字コードは、ASCII になります。
たとえば、エラーコード値 <code>EB_SUCCESS</code> を渡すと文字列
<samp>"EB_SUCCESS"</samp> を返します。
未知のエラーコードを渡したときは、<samp>"EB_ERR_UNKNOWN"</samp> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:error_message"><code>const char *eb_error_message (EB_Error_Code <var>error_code</var>)</code></a></h4>
<p>
関数 <code>eb_error_message()</code> は、エラーコード <var>error_code</var>
に対応したメッセージを文字列にして返します。
関数の返すメッセージは、英語か日本語になります。
</p>
<p>
国際化機能を有効にして EB ライブラリをコンパイルしていない場合は、常に
英語のメッセージを返します。
このときのメッセージの文字コードは、ASCII になります。
</p>
<p>
メッセージの国際化機能 (NLS) を有効にして EB ライブラリをコンパイル
した場合は、ロケールの設定に応じてどちらの言語のメッセージを返すのか
が決まります。
また、GNU gettext バージョン 0.36 以降では iconv() と連携することにより、
メッセージの文字コードもロケールに応じて変化します。
gettext が iconv() との連携を行わなければ、英語のメッセージは ASCII、
日本語のメッセージは日本語 EUC になります。
この関数の呼び出しによって、gettext のテキストドメインの設定は変化
しません。
</p>
<p>
未知のエラーコードを渡したときに返すメッセージは、英語では
<samp>"unknown error"</samp>、日本語では <samp>"未知のエラーです"</samp>
になります。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-05.html">前へ</a>] [<a href="eb-07.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

550
lib/ebu/doc/eb-07.html Normal file
View file

@ -0,0 +1,550 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-06.html">前へ</a>] [<a href="eb-08.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="subbook">副本</a></h2>
<p>
紙に印刷された本では別々の書籍になっているものでも、電子ブックや EPWING
では 1 枚の CD-ROM にまとめることができます。
</p>
<p>
たとえば、ある CD-ROM 書籍は、国語辞書、英々辞典、百科事典という 3 つ
の (印刷された本で言うところの) 「書籍」を持っていることもあり得ます。
紛らわしさを避けるために、EB ライブラリではここで言う「書籍」のことを
<dfn>副本 (subbook)</dfn> と呼んでいます。
</p>
<blockquote>
<pre>
   CD-ROM書籍
┌─────────────┐
│ 副本0: [国語辞典] │
│ 副本1: [英々辞典] │
│ 副本2: [百科事典] │
└─────────────┘
</pre>
</blockquote>
<p>
CD-ROM 書籍では、それぞれの副本はそれ自体が独立した書籍になっています。
また、副本のデータも、副本毎に別々のファイルに収められています。
したがって、EB ライブラリでも、アプリケーションプログラムの主要な処理
である単語の検索や本文データの取得などは、すべて副本単位で行うように
なっています。
</p>
<p>
本章では、EB ライブラリでの副本の扱い方について説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook-code">副本コード</a></h3>
<p>
EB ライブラリでは、それぞれの副本に対して <dfn>副本コード (subbook code)</dfn>
を割り当てます。
このコードは EB ライブラリが副本を識別するために用いますので、個々の
副本コードは、書籍内で同じものがないようになっています。
</p>
<p>
以下のソースコードは、<code>eb_subbook_list()</code> という関数の
使用例です。
この関数は、書籍内のすべての副本の副本コードを取得することができます。
</p>
<blockquote class="program">
<pre>
/* <code>book</code><code>EB_Book</code> のオブジェクトで、すでに
* 書籍に結び付けられていると仮定しています。*/
EB_Subbook_Code sub_codes[EB_MAX_SUBBOOKS];
int sub_count;
if (eb_subbook_list(&amp;book, sub_codes, &amp;sub_count)
!= EB_SUCCESS) {
printf("eb_subbook_list() failed\n");
return;
}
</pre>
</blockquote>
<p>
<code>eb_subbook_list()</code> が成功すると、書籍内のすべての副本コードが
配列 <code>sub_codes[]</code> に格納されます。
配列の先頭の副本コードは <code>sub_codes[0]</code> と表され、次の
コードは <code>sub_codes[1]</code>、という具合になります。
副本の個数は、<code>sub_count</code> に格納されます。
</p>
<p>
個々の副本には、必ず題名が付けられています。
先頭の副本 (<code>sub_codes[0]</code>) の題名は、次のようにして
得ることができます。
</p>
<blockquote class="program">
<pre>
char title[EB_MAX_TITLE_LENGTH + 1];
if (eb_subbook_title2(&amp;book, sub_codes[0], title)
!= EB_SUCCESS) {
printf("eb_subbook_title2() failed\n");
return;
}
</pre>
</blockquote>
<p>
<code>eb_subbook_title2()</code> の呼び出しが成功すると、
<code>title</code> に題名を表す文字列が格納されます。
</p>
<p>
蛇足ですが、(副本ではなく) CD-ROM の題名を取得する関数はありません。
なぜなら、題名を示すデータが CD-ROM の中には何処にもないからです。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="current-subbook">選択中の副本</a></h3>
<p>
<code>EB_Book</code> オブジェクトは、結びつけられた CD-ROM 書籍の中の
任意の副本から一つ選んで、<dfn>選択中の副本 (current subbook)</dfn>
として指定することができます。
複数の副本を、同時に選択することはできません。
単語の検索や、本文データの取得など、ほとんどの操作は、選択中の副本に
対してだけ行えます。
</p>
<p>
<code>eb_bind()</code><code>EB_Book</code> オブジェクトを書籍に
結び付けた直後は、いずれの副本も選択されていない状態になっています。
</p>
<blockquote>
<pre>
EB_Book         CD-ROM書籍
オブジェクト
┌────┐       ┌─────────────┐
│選択中 │       │ 副本0: [国語辞典] │
│の副本 │       │ 副本1: [英々辞典] │
│<なし>│       │ 副本2: [百科事典] │
└────┘       └─────────────┘
</pre>
</blockquote>
<p>
副本の選択を行うには、関数 <code>eb_set_subbook()</code> を使用します。
<code>eb_set_subbook()</code> は、引数として渡された副本コードに
したがって副本を選択します。
以下は、先頭の副本 (<code>sub_codes[0]</code>) を選択する場合の例です。
</p>
<blockquote class="program">
<pre>
/* <code>book</code><code>EB_Book</code> のオブジェクトで、すでに
* 書籍に結び付けられていると仮定しています。*/
EB_Subbook_Code sub_codes[EB_MAX_SUBBOOKS];
int sub_count;
if (eb_subbook_list(&amp;book, sub_codes, &amp;sub_count)
!= EB_SUCCESS) {
printf("eb_subbook_list() failed\n");
return;
}
if (eb_set_subbook(&amp;book, sub_codes[0]) != EB_SUCCESS) {
printf("eb_subbook_list() failed\n");
return;
}
</pre>
</blockquote>
<p>
成功すると、次のように副本が選択された状態になります。
</p>
<blockquote>
<pre>
EB_Book         CD-ROM書籍
オブジェクト
┌────┐       ┌─────────────┐
│選択中 │  ┏━━━━┿━副本0: [国語辞典] │
│の副本 │  ┃    │ 副本1: [英々辞典] │
│ *━━┿━━┛    │ 副本2: [百科事典] │
└────┘       └─────────────┘
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook-sample">サンプルプログラム</a></h3>
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* subbook &lt;book-path&gt;
* 例:
* subbook /cdrom
* 説明:
* &lt;boook-path&gt; で指定され CD-ROM 書籍に含まれているすべての副本の
* 題名を表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
int subbook_count;
char title[EB_MAX_TITLE_LENGTH + 1];
int i;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path\n", argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
eb_initialize_book(&amp;book);
/* 書籍を `book' に結び付ける。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_subbook_list(&amp;book, subbook_list, &amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 書籍に含まれている副本の題名を出力。*/
for (i = 0; i &lt; subbook_count; i++) {
error_code = eb_subbook_title2(&amp;book, subbook_list[i], title);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the title, %s\n",
argv[0], eb_error_message(error_code));
continue;
}
printf("%d: %s\n", i, title);
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook-data-types">データ型の詳細</a></h3>
<p>
この節で説明しているデータ型を使うには、次のようにヘッダファイルを
読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:Subbook_Code"><code>EB_Subbook_Code</code></a></h4>
<p>
データ型 <code>EB_Subbook_Code</code> は副本コードを表します。
一冊の書籍の中の副本は、それぞれ一意の副本コードを持っています。
この型は符合付き整数型の別名として定義されていますので、2 つのコードを
2 項演算子 <code>==</code><code>!=</code> で一致比較することが
できます。
</p>
<p>
また、不正な副本コード値を表す <code>EB_SUBBOOK_INVALID</code> という
特別な副本コードが定義されています。
利用可能な副本に対して、この副本コードが割り当てられることはありません。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook-functions">関数の詳細</a></h3>
<p>
この節で説明している関数を使うには、次のようにヘッダファイルを読み込んで
下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/eb.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:load_all_subbooks"><code>EB_Error_Code eb_load_all_subbooks (EB_Book *<var>book</var>)</code></a></h4>
<p>
関数 <code>eb_load_all_subbooks()</code> は、<var>book</var> 内のすべての
副本を初期化します。
通常、副本の初期化は、その副本が初めて選択されたときに自動的に行われますが、
この関数は初期化を前倒しで行います。
初期化の対象となるのは、この関数を呼び出した時点でまだ初期化していない
すべての副本です。
この関数は、スタンドアロンで動作するサーバアプリケーションなどで有効です。
クライアントからの接続を受ける前にこの関数を呼ぶことで、副本の初期化の
ためにクライアントを待たせなくて済みます。
</p>
<p>
初期化の対象となったすべての副本の初期化に成功すれば、関数は
<code>EB_SUCCESS</code> を返します。
一冊でも初期化に失敗した場合は、残りの副本の初期化を諦め、原因を示す
エラーコードを返します。
</p>
<p>
<var>book</var> は、あらかじめ書籍に結び付けられていなくてはなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<p>
この関数を呼び出すと、<var>book</var> は、副本を選択していない状態になります。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook_list"><code>EB_Error_Code eb_subbook_list (EB_Book *<var>book</var>, EB_Subbook_Code *<var>subbook_list</var>, int *<var>subbook_count</var>)</code></a></h4>
<p>
関数 <code>eb_subbook_list()</code> は、<var>book</var> 内のすべて副本の
副本コードを <code>EB_Subbook_Code</code> 型の配列にして、
<var>subbook_list</var> の指す領域に書き込みます。
配列は、最大で <code>EB_MAX_SUBBOOKS</code> 個の要素を持ちます。
加えて、書籍が収録している副本の個数を <var>subbook_count</var> の指す
領域に書き込みます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>subbook_count</var> の指す領域に 0 を書き込み、原因を
示すエラーコードを返します。
</p>
<p>
<var>book</var> は、あらかじめ書籍に結び付けられていなくてはなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook"><code>EB_Error_Code eb_subbook (EB_Book *<var>book</var>, EB_Subbook_Code *<var>subbook_code</var>)</code></a></h4>
<p>
関数 <code>eb_subbook()</code> は、<var>book</var> が選択中の副本の
副本コードを <var>subbook_code</var> の指す領域に書き込みます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>subbook_code</var> の指す領域に
<code>EB_SUBBOOK_INVALID</code> を書き込み、原因を示すエラーコードを
返します。
</p>
<p>
あらかじめ、<var>book</var> はいずれかの副本を選択していなくてはなりません。
選択していない場合は、<code>EB_ERR_NO_CUR_SUB</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook_title"><code>EB_Error_Code eb_subbook_title (EB_Book *<var>book</var>, char *<var>title</var>)</code></a></h4>
<p>
関数 <code>eb_subbook_title()</code> は、<var>book</var> が選択中の副本の
題名を <var>title</var> の指す領域に文字列として書き込みます。
題名の文字列の長さは、最長で <code>EB_MAX_TITLE_LENGTH</code> バイトです。
この長さは、末尾のナル文字を含みません。
</p>
<p>
書籍の文字コード
(<a href="eb-05.html#eb_book-data-types">「[CD-ROM 書籍と <code>EB_Book</code> オブジェクト] データ型の詳細」</a> を参照のこと)
<code>EB_CHARCODE_ISO8859_1</code> なら、題名を表す文字列は ISO 8859-1
になり、それ以外の文字コードなら日本語 EUC になります。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>title</var> の指す領域に空文字列を書き込み、原因を示す
エラーコードを返します。
</p>
<p>
あらかじめ、<var>book</var> 内のいずれかの副本が選択されていなくては
なりません。
選択していない場合は、<code>EB_ERR_NO_CUR_SUB</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook_title2"><code>EB_Error_Code eb_subbook_title2 (EB_Book *<var>book</var>, EB_Subbook_Code <var>subbook_code</var>, char *<var>title</var>)</code></a></h4>
<p>
<code>eb_subbook_title()</code> と似ていますが、選択中の副本ではなく、
引数 <var>subbook_code</var> で指定された副本の題名を書き込む点が
異なります。
</p>
<p>
<var>book</var> は副本を選択していなくても構いませんが、あらかじめ書籍
に結び付けられていなければなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook_directory"><code>EB_Error_Code eb_subbook_directory (EB_Book *<var>book</var>, char *<var>directory</var>)</code></a></h4>
<p>
関数 <code>eb_subbook_directory()</code> は、<var>book</var> 内で現在
選択中の副本のデータファイルを収めたディレクトリ名を、<var>directory</var>
の指す領域に書き込みます。
</p>
<p>
ディレクトリ名の文字列の長さは、最長で
<code>EB_MAX_DIRECTORY_NAME_LENGTH</code> バイトです。
この長さに、末尾のナル文字は含みません。
ディレクトリ名は ASCII の数字、英小文字、アンダースコアで構成されます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>directory</var> の指す領域に空文字列を書き込み、原因に
を示すエラーコードを返します。
</p>
<p>
あらかじめ、<var>book</var> 内のいずれかの副本が選択されていなくては
なりません。
選択していない場合は、<code>EB_ERR_NO_CUR_SUB</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:subbook_directory2"><code>EB_Error_Code eb_subbook_directory2 (EB_Book *<var>book</var>, EB_Subbook_Code <var>subbook_code</var>, char *<var>directory</var>)</code></a></h4>
<p>
<code>eb_subbook_directory()</code> と似ていますが、選択中の副本ではなく、
引数 <var>subbook_code</var> で指定された副本のディレクトリ名を書き込む点
が異なります。
</p>
<p>
<var>book</var> は副本を選択していなくても構いませんが、あらかじめ
書籍に結び付けられていなければなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:set_subbook"><code>EB_Error_Code eb_set_subbook (EB_Book *<var>book</var>, EB_Subbook_Code <var>code</var>)</code></a></h4>
<p>
関数 <code>eb_set_subbook()</code> は、<var>book</var> の副本
<var>code</var> を選択します。
すでに副本を選択していた場合は、いったん未選択の状態にしてから副本
<var>subbook_code</var> を選択します。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
このとき、外字は未選択の状態となり、検索、テキストデータの読み込み、
バイナリデータの読み込みについての状態記録は、すべてリセットされます。
失敗すると、副本を未選択の状態にして、原因を示すエラーコードを返します。
</p>
<p>
あらかじめ、<var>book</var> は書籍に結び付けられていなければなりません。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOK</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:unset_subbook"><code>void eb_unset_subbook (EB_Book *<var>book</var>)</code></a></h4>
<p>
関数 <code>eb_unset_subbook()</code> は、<var>book</var> が選択している
副本を未選択の状態にします。
<var>book</var> が書籍に結び付いていないか、副本が選択されていない場合は、
何もしません。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-06.html">前へ</a>] [<a href="eb-08.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

1218
lib/ebu/doc/eb-08.html Normal file

File diff suppressed because it is too large Load diff

3001
lib/ebu/doc/eb-09.html Normal file

File diff suppressed because it is too large Load diff

1328
lib/ebu/doc/eb-10.html Normal file

File diff suppressed because it is too large Load diff

788
lib/ebu/doc/eb-11.html Normal file
View file

@ -0,0 +1,788 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-10.html">前へ</a>] [<a href="eb-12.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="binary-data">バイナリデータ</a></h2>
<p>
<dfn>バイナリデータ (binary data)</dfn> とは、
図版や動画、音声といったマルチメディアデータのことを指します。
バイナリデータは、必ずテキストデータ
(<a href="eb-09.html#text-data">「テキストデータ」</a> を参照のこと)
から参照される形で利用されます。
</p>
<p>
今のところ EB ライブラリでは、全種類のバイナリデータを取り扱うことが
できるわけではありません。
電子ブックで扱えるのは、2 階調のモノクロ図版と、カラー図版 (JPEG) だけ
です。
EPWING では、モノクロ図版、カラー図版 (BMP および JPEG) に加えて、
WAVE (PCM) 音声、MPEG 動画を扱うことができます。
</p>
<p>
ただし、EB ライブラリが提供しているのは、こうしたバイナリデータを
CD-ROM 書籍から取得する機能だけです。
表示したり再生したりする機能は用意していませんので、注意して下さい。
</p>
<p>
アプリケーションは、英和辞書や国語辞書といった辞書だけを対象にするなら、
バイナリデータの表示や再生には対応しなくても支障はありません。
しかし一方では、図鑑や数式の表現にモノクロ図版を使っている数学辞典の
ように、対応しないと不便なものもあります。
バイナリデータの表示や再生の機能を実装するかどうかは、アプリケーション
の対象辞書をどの範囲までにするのかによって決めると良いでしょう。
</p>
<p>
以下、この章では種類別にバイナリデータの扱い方について説明します。
</p>
<p>
バイナリデータの種類毎にデータの取り出し方は微妙に異なりますが (これは
データの収録方法が微妙に異なっているからに他なりません)、おおよそ手順
は、次のようなものになります。
</p>
<ol>
<li>
テキストデータのフックを用いて、バイナリデータの参照情報を取得する。
<li>
<code>eb_binary_set_...()</code> 関数を呼び出して、指定した位置の
バイナリデータをこれから読み込む旨を EB ライブラリに伝える。
<li>
<code>eb_read_binary()</code> で実際にデータを読み込む。
</ol>
<p>
テキストデータと同様に、バイナリデータも副本に属するデータ
ですので、副本を選択していないと取得することはできません。
バイナリデータの読み込みには、テキストデータとは別の
ファイルディスクリプタが割り当てられます。
したがって、双方を交互に読み込んでも、動作には影響はありません。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="monochrome-image">モノクロ図版</a></h3>
<p>
2 階調のモクロ図版は、電子ブック、EPWING 双方に存在し、EB ライブラリ
ではどちらも扱うことができます。
(電子ブックに存在する 16 階調のモノクロ図版は、今のところ EB ライブラリ
では対応していません。)
</p>
<p>
クロ図版データの内部形式は外字と同じですが、EB ライブラリでは、
1 ピクセルに 1bit を割り当てた BMP 形式に変換してアプリケーションに
渡すようにしています。
したがって、アプリケーションからは、あたかも BMP の図版データが収録
されているようにみえます。
</p>
<p>
テキストデータ内からは、バイナリデータであるモノクロ図版を参照する形
をとります。
モノクロ図版を取り出すには、この参照情報が必要です。
参照情報の取得は、テキストデータ処理時に、モノクロ図版の開始と終了を
表すエスケープシーケンスへのフック <code>EB_HOOK_BEGIN_MONO_GRAPHIC</code>
<code>EB_HOOK_END_MONO_GRAPHIC</code> を用いて行います。
</p>
<p>
フック <code>EB_HOOK_BEGIN_MONO_GRAPHIC</code> がフック関数に渡す引数
(<code>argv</code>) は 4 つあり、このうちの <code>argv[2]</code>
<code>argv[3]</code> が図版の幅と高さ (ピクセル数) を意味します。
</p>
<p>
また、フック <code>EB_HOOK_END_MONO_GRAPHIC</code> がフック関数に渡す
引数は 3 つで、<code>argv[1]</code><code>argv[2]</code> が、
図版データのページ番号とオフセットになります。
</p>
<p>
モノクロ図版を取得するには、上記のフックから得た図版のページ番号と
オフセット、および幅と高さを記憶しておきます。
</p>
<p>
次に、<code>eb_set_binary_mono_graphic()</code> を呼び出して、これから
モノクロ図版のデータを取得することを EB ライブラリに伝えます。
<code>eb_set_binary_mono_graphic()</code> への引数には、
<code>EB_Book</code> オブジェクトと、先ほど得た図版へのページ番号、
オフセット、幅、高さを渡します。
<code>EB_Book</code> オブジェクトは、これから取り出そうとしている図版を
収録している副本をあらかじめ選択しておく必要があります。
</p>
<blockquote class="program">
<pre>
/* <code>eb_set_binary_mono_graphic()</code> の関数プロトタイプ */
EB_Error_Code
eb_set_binary_mono_graphic(EB_Book *book, EB_Position *position,
int width, int height);
</pre>
</blockquote>
<p>
電子ブックでは、フック関数に渡される幅と高さの値は 0 になっていますが、
そのまま <code>eb_set_binary_mono_graphic()</code> に渡します。
(EPWING では 0 を渡してはいけません。)
</p>
<p>
以上で図版データの取得準備ができたので、データを読み込みます。
これには、<code>eb_read_binary()</code> を使います。
</p>
<blockquote class="program">
<pre>
#define MAX_LENGTH 1000
char bitmap[MAX_LENGTH];
ssize_t bitmap_length;
if (eb_read_binary(&amp;book, MAX_LENGTH, bitmap, &amp;bitmap_length)
!= EB_SUCCESS) {
fprintf(stderr, "an error occurs.\n");
return;
}
</pre>
</blockquote>
<p>
成功すると、読み込んだ図版データが <code>bitmap</code> に書き込まれ、
何バイト書き込んだのかが <code>bitmap_length</code> に書き込まれます。
書き込まれるバイト数は、最大で <code>MAX_LENGTH</code> バイトです。
</p>
<p>
必ずしも一回の <code>eb_read_binary()</code> の呼び出しで図版データを
終端まで読み込む必要はなく、関数を繰り返し呼び出せば、前回の続きを
読み込むことができます。
<code>eb_read_binary()</code> は、図版データの終端まで来るとそれ以上
データは読み込みませんので、<code>eb_read_binary()</code> が 0 を返した
時点で図版データが終端したことを認識できます。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="color-image">カラー図版</a></h3>
<p>
カラー図版は、電子ブックでは JPEG 形式、EPWING では JPEG と BMP (DIB)
形式のものが使用されています。
EB ライブラリはこれらをすべて扱うことができますが、電子ブックへの対応
は限定的なものになっています。(詳しくは後述します。)
</p>
<p>
カラー図版のデータを取り出すには、モノクロ図版と同様にテキストデータ
からカラー図版への参照情報をフックを通じて取得し、続いて実際に
カラー図版のデータを読み込むという手順になります。
</p>
<p>
<code>eb_set_binary_color_graphic()</code> を呼び出して、これから
アプリケーションがカラー図版のデータを取得しようとしていることを
EB ライブラリに伝えます。
<code>eb_set_binary_color_graphic()</code> への引数には、
<code>EB_Book</code> オブジェクトに加えて、カラー図版のページ番号と
オフセットを渡します。
</p>
<blockquote class="program">
<pre>
/* <code>eb_set_binary_color_graphic()</code> の関数プロトタイプ */
EB_Error_Code
eb_set_binary_color_graphic(EB_Book *book, EB_Position *position);
</pre>
</blockquote>
<p>
<code>EB_Book</code> オブジェクトは、これから取り出そうとしている図版を
収録している副本をあらかじめ選択しておきます。
カラー図版のページ番号とオフセットの情報は、カラー図版の開始と終了を表す
エスケープシーケンスへのフックから得ます。
フックは、インライン表示用と非インライン用の 2 種類があり、さらに
それぞれ開始フックが JPEG 用と BMP 用に分かれています。
</p>
<dl>
<dt><code>EB_HOOK_BEGIN_COLOR_BMP</code></dt>
<dt><code>EB_HOOK_BEGIN_COLOR_JPEG</code></dt>
<dd>
非インライン用 BMP, JPEG の開始フック
<dt><code>EB_HOOK_END_COLOR_GRAPHIC</code></dt>
<dd>
非インライン用カラー図版 (BMP, JPEG 共通) の終了フック
<dt><code>EB_HOOK_BEGIN_IN_COLOR_BMP</code></dt>
<dt><code>EB_HOOK_BEGIN_IN_COLOR_JPEG</code></dt>
<dd>
インライン用 BMP, JPEG の開始フック
<dt><code>EB_HOOK_END_IN_COLOR_GRAPHIC</code></dt>
<dd>
非インライン用カラー図版 (BMP, JPEG 共通) の終了フック
</dl>
<p>
非インライン用の終了フック <code>EB_HOOK_END_GRAPHIC</code> では、
フック関数に渡す引数の <code>argv[2]</code><code>argv[3]</code> が、
図版データのページ番号とオフセットになりますので、これを
<code>eb_set_binary_color_graphic()</code> に渡してやります。
同様に、インライン用の終了フック <code>EB_HOOK_END_IN_GRAPHIC</code>
では、<code>argv[2]</code><code>argv[3]</code> がページ番号と
オフセットですので、これを渡します。
</p>
<p>
後は、実際にカラー図版のデータを取り出します。
これには、モノクロ図版と同様に <code>eb_read_binary()</code> を用います。
使い方はまったく一緒ですので、詳しくは
<a href="eb-11.html#monochrome-image">「モノクロ図版」</a> を参照してください。
</p>
<p>
ただし、電子ブックのカラー図版については、データの終了位置が来ても
EB ライブラリは読み込みを止めないという制限事項があります。
これは、データの大きさに関する情報が記されていないためで、データの
終端位置は、アプリケーションが JPEG のデータをデコードして割り出すしか
ありません。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="clickable-color-image">参照先付きカラー図版</a></h3>
<p>
カラー図版には、画像内の特定の矩形領域に参照先の情報を付け加えたものが
あります。
HTML におけるクリッカブル・イメージ (clickable image) とほぼ同じで、その
矩形領域内にマウスポインタがある間にマウスをクリックすると、あらかじめ
決められたリンク先に画面が遷移するという仕掛けです。
リンク先となる矩形領域は、画像一つに対して複数個登録できます。
</p>
<blockquote>
<pre>
       参照先付きカラー図版の例
┌────────────────────────┐
│┌ ─ ─ ─ ─ ┐  ┌ ─ ─ ─ ─ ┐│
│                        │
││  矩形領域1  │  │  矩形領域2  ││
│                        │
│└ ─ ─ ─ ─ ┘  └ ─ ─ ─ ─ ┘│
│                        │
│┌ ─ ─ ─ ─ ┐             │
│                        │
││  矩形領域3  │      図版     │
│                        │
│└ ─ ─ ─ ─ ┘             │
└────────────────────────┘
</pre>
</blockquote>
<p>
参照先付きカラー図版の取り扱い方は、通常のカラー図版を拡張した形と
なります。通常のカラー図版の場合では、たとえば JPEG の非インライン
画像では、次のような順番でフックが呼び出されます。
</p>
<ol>
<li><code>EB_HOOK_BEGIN_COLOR_JPEG</code> (非インライン用 JPEG 開始)
<li><code>EB_HOOK_END_COLOR_GRAPHIC</code> (非インライン用 JPEG 終了)
</ol>
<p>
これに対して参照先付きのカラー図版では、この2つのフックの間に、矩形領域
情報に関するフックが挿入されます。
</p>
<ol>
<li><code>EB_HOOK_BEGIN_COLOR_JPEG</code> (非インライン用 JPEG 開始)
<li><code>EB_HOOK_BEGIN_CLICKABLE_AREA</code> (矩形領域1 開始)
<li><code>EB_HOOK_END_CLICKABLE_AREA</code> (矩形領域1 終了)
<li><code>EB_HOOK_BEGIN_CLICKABLE_AREA</code> (矩形領域2 開始)
<li><code>EB_HOOK_END_CLICKABLE_AREA</code> (矩形領域2 終了)<br>
以下、矩形領域3、矩形領域4 ... と矩形領域の個数分だけ続く。
<li><code>EB_HOOK_END_COLOR_GRAPHIC</code> (非インライン用 JPEG 終了)
</ol>
<p>
矩形領域に関する具体的な情報は、<code>EB_HOOK_BEGIN_CLICKABLE_AREA</code>
(開始フック) のほうで取得します。
フック関数に渡す引数の <code>argv[1]</code><code>argv[2]</code> が、
それぞれ矩形領域の開始 x, y 座標を表します。
カラー図版の左上の座標が (0, 0) です。
同様に、<code>argv[3]</code><code>argv[4]</code> が矩形領域の右方向
への幅と、下方向への高さを表します。
最後の <code>argv[5]</code><code>argv[6]</code> が参照先のページ番号
とオフセットとなります。
</p>
<p>
アプリケーションが参照先付きカラー図版に対応しない場合は、矩形領域の
開始情報と終了情報を無視することになります。
これにより、図版は通常の (参照先を持たない) カラー図版とまったく同じく
扱われます。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="wave-sound">WAVE (PCM) 音声</a></h3>
<p>
WAVE (PCM) 形式の音声データは EPWING にだけ存在します。
(代わりに電子ブックには CD-DA 形式の音声データがありますが、EB ライブラリ
では対応していません。)
</p>
<p>
WAVE 形式の音声データを取り出すには、まずテキストデータ中から WAVE 音声
の参照情報を得ます。
参照開始と終了を表すエスケープシーケンスへのフック
<code>EB_HOOK_BEGIN_WAVE</code><code>EB_HOOK_END_WAVE</code>
それぞれありますので、これを用います。
</p>
<p>
フック <code>EB_HOOK_BEGIN_WAVE</code> がフック関数に渡す引数のうち、
<code>argv[2]</code><code>argv[3]</code> が音声データの開始位置の
ページ番号とオフセット、<code>argv[4]</code><code>argv[5]</code>
終了位置のページ番号とオフセットとなります。
</p>
<p>
この開始位置と終了位置を関数 <code>eb_set_binary_wave()</code> に渡して、
その位置にある音声データをこれから取り出すことを EB ライブラリに伝えます。
</p>
<blockquote class="program">
<pre>
/* <code>eb_set_binary_wave()</code> の関数プロトタイプ */
EB_Error_Code
eb_set_binary_wave(EB_Book *book, EB_Position *start_position,
EB_Position *end_position);
</pre>
</blockquote>
<p>
そして後は、実際に音声データを取り出します。
これには、他のバイナリデータと同様に <code>eb_read_binary()</code>
用います。
<code>eb_read_binary()</code> の使い方は、
<a href="eb-11.html#monochrome-image">「モノクロ図版」</a> を参照のこと を参照してください。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="mpeg-movie">MPEG1 動画</a></h3>
<p>
MPEG1 形式の動画データは EPWING にだけ存在します。
動画データは EPWING の CD-ROM の movie というディレクトリの下に、
動画毎に一個のファイルにした形で収められています。
</p>
<p>
テキストデータ中に存在する、MPEG データの参照開始と終了を表す
エスケープシーケンスへのフック <code>EB_HOOK_BEGIN_MPEG</code>
<code>EB_HOOK_END_MPEG</code> を使用することで、参照先の MPEG の
ファイル名を取得できます。
</p>
<p>
具体的には、フック <code>EB_HOOK_BEGIN_MPEG</code> がフック関数に渡す
引数のうち、<code>argv[2]</code> <code>argv[5]</code> が合わせて一つ
のファイル名を表すようになっています。
</p>
<p>
MPEG 動画のデータを得るには、このファイル名を
<code>eb_set_binary_mpeg()</code> に渡して、そのファイルの動画データを
これから取り出す旨を EB ライブラリに伝えます。
ファイル名は、次のようにして <code>argv + 2</code>
(<code>&amp;argv[2]</code> でも同じ) を渡します。
</p>
<blockquote class="program">
<pre>
if (eb_set_binary_mpeg(&amp;book, argv + 2) != EB_SUCCESS) {
fprintf(stderr, "an error occurs.\n");
return;
}
</pre>
</blockquote>
<p>
後は、実際に動画データを取り出します。
これには、やはり他のバイナリデータと同様に <code>eb_read_binary()</code>
を用います。
<code>eb_read_binary()</code> の使い方については、
<a href="eb-11.html#monochrome-image">「モノクロ図版」</a> を参照のこと を参照してください。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="binary-data-functions">関数の詳細</a></h3>
<p>
この節で説明している関数を使うには、次のようにヘッダファイルを読み込んで
下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/binary.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:set_binary_mono_graphic"><code>EB_Error_Code eb_set_binary_mono_graphic (EB_Book *<var>book</var>, const EB_Position *<var>position</var>, int <var>width</var>, <var>height</var>)</code></a></h4>
<p>
関数 <code>eb_set_binary_mono_graphic()</code> は、モノクロ図版のデータを
これから取得しようとしていることを EB ライブラリに伝えます。
引数 <var>position</var> は図版の位置、<var>width</var>, <var>height</var>
には図版の幅と高さを渡します。
これらの情報は、図版の参照元であるテキストデータに記載されており、通常は
フック関数を通じて得るようにします。
ただし、電子ブックでは幅と高さの値の情報がテキストデータに記されていない
ため、0 を渡すことになります。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、原因に応じたエラーコードを返します。
</p>
<p>
あらかじめ、図版を取り出そうとしている副本を選択しておかなければ
なりません。
<var>book</var> が副本を選択していなければ、<code>EB_ERR_NO_CUR_SUB</code>
を返します。
図版の位置、幅、高さの値が明らかにおかしいと EB ライブラリが判断した
ときは、<code>EB_ERR_NO_SUCH_BINARY</code> を返します。
</p>
<p>
この関数は、実際に図版データを読み込むことはしません。
読み込みには、<code>eb_read_binary()</code> を用います。
クロ図版のデータは、1 ピクセルに 1bit を割り当てた BMP 形式になって
います。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:set_binary_color_graphic"><code>EB_Error_Code eb_set_binary_color_graphic (EB_Book *<var>book</var>, const EB_Position *<var>position</var>)</code></a></h4>
<p>
関数 <code>eb_set_binary_color_graphic()</code> は、EPWING のカラー図版の
データをこれから取得しようとしていることを EB ライブラリに伝えます。
引数 <var>position</var> は図版の位置を渡します。
位置の情報は、図版の参照元であるテキストデータに記載されており、通常は
フック関数を通じて得るようにします。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
</p>
<p>
あらかじめ、図版を取り出そうとしている副本を選択しておかなければ
なりません。
<var>book</var> が副本を選択していなければ、<code>EB_ERR_NO_CUR_SUB</code>
を返します。
図版の位置が明らかにおかしいと EB ライブラリが判断したときは、
<code>EB_ERR_NO_SUCH_BINARY</code> を返します。
</p>
<p>
この関数は、実際に図版データを読み込むことはしません。
読み込みには、<code>eb_read_binary()</code> を用います。
カラー図版データは、JPEG か BMP (DIB) のいずかの形式になっています。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:set_binary_wave"><code>EB_Error_Code eb_set_binary_wave (EB_Book *<var>book</var>, const EB_Position *<var>start_position</var>, EB_Position *<var>end_position</var>)</code></a></h4>
<p>
関数 <code>eb_set_binary_wave()</code> は、WAVE (PCM) 形式の音声のデータ
をこれから取得しようとしていることを EB ライブラリに伝えます。
引数 <var>start_position</var><var>end_position</var> には音声データ
の開始位置を渡します。
位置の情報は、音声データの参照元であるテキストデータに記載されており、
通常はフック関数を通じて得るようにします。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、原因に応じたエラーコードを返します。
</p>
<p>
あらかじめ、音声データを取り出そうとしている副本を選択しておかなければ
なりません。
<var>book</var> が副本を選択していなければ、<code>EB_ERR_NO_CUR_SUB</code>
返します。
音声データの位置が明らかにおかしいと EB ライブラリが判断したときは、
<code>EB_ERR_NO_SUCH_BINARY</code> を返します。
</p>
<p>
この関数は、実際に音声データを読み込むことはしません。
読み込みには、<code>eb_read_binary()</code> を用います。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:set_binary_mpeg"><code>EB_Error_Code eb_set_binary_mpeg (EB_Book *<var>book</var>, const unsigned int *<var>argv</var>)</code></a></h4>
<p>
関数 <code>eb_set_binary_mpeg()</code> は、MPEG1 形式の動画のデータを
これから取得しようとしていることを EB ライブラリに伝えます。
引数 <var>argv</var> には動画データのファイル名を渡します。
ただし、このファイル名は文字列ではなく、フック関数
<code>EB_HOOK_BEGIN_MPEG</code> に渡された引数 <code>argv[2]</code>
<code>argv[5]</code> の部分を渡します。
つまり、フック関数の引数 <code>argv + 2</code> を、
<code>eb_set_binary_mpeg()</code> への引数 <var>argv</var> として
渡します。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、原因に応じたエラーコードを返します。
</p>
<p>
あらかじめ、動画データを取り出そうとしている副本を選択しておかなければ
なりません。
<var>book</var> が副本を選択していなければ、<code>EB_ERR_NO_CUR_SUB</code>
を返します。
存在しない動画ファイル名を EB ライブラリが判断したときは、
<code>EB_ERR_NO_SUCH_BINARY</code> を返します。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
</p>
<p>
この関数は、実際に動画データを読み込むことはしません。
読み込みには、<code>eb_read_binary()</code> を用います。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:read_binary"><code>EB_Error_Code eb_read_binary (EB_Book *<var>book</var>, size_t <var>binary_max_length</var>, char *<var>binary</var>, ssize_t *<var>binary_length</var>)</code></a></h4>
<p>
関数 <code>eb_read_binary()</code> は、バイナリデータを読み込みます。
読み込もうとしているバイナリデータは、事前に
</p>
<ul>
<li><code>eb_set_binary_mono_graphic()</code>
<li><code>eb_set_binary_color_graphic()</code>
<li><code>eb_set_binary_wave()</code>
<li><code>eb_set_binary_mpeg()</code>
</ul>
<p>
のいずれかの関数で、EB ライブラリに通知しておく必要があります。
</p>
<p>
読み込んだデータは引数 <var>binary</var> の指す先の領域に書き込まれます。
また、このとき書き込まれたバイト数は、<var>binary_length</var> の指す
先の領域にセットされます。
ただし、書き込まれるバイト数は、最長でも引数 <var>binary_max_length</var>
に指定した値までとなります。
</p>
<p>
この関数は、特に読み込んだデータの終端にナル文字を付加するような事は
しません。
読み込まれるデータもバイナリ形式なので、途中にナル文字が出現する事も
あります。
</p>
<p>
この関数を一回呼び出しだだけで、バイナリデータ全体を一気に取得する
必要はありません。
繰り返し呼び出せば、前回の続きからデータが読み込まれます。
</p>
<p>
ただし、以下に挙げた関数を呼び出すと、バイナリデータの読み込みに関する
状態記録がリセットされますので、それ以上の読み込みはできなくなります。
</p>
<ul>
<li><code>eb_set_subbook()</code>
<li><code>eb_unset_subbook()</code>
<li><code>eb_load_all_subbooks()</code>
<li><code>eb_bind()</code>
<li><code>eb_finalize_book()</code>
<li><code>eb_set_binary_mono_graphic()</code>
<li><code>eb_set_binary_color_graphic()</code>
<li><code>eb_set_binary_wave()</code>
<li><code>eb_set_binary_mpeg()</code>
</ul>
<p>
<code>eb_read_binary()</code> を繰り返し呼んだ場合、バイナリデータは
その都度 <var>binary</var> の先頭から書き込まれ、*<var>binary_length</var>
の値も、その回の <code>eb_read_binary()</code> の呼び出しで書き込まれた
バイト数になります。
</p>
<p>
データの終端に来ると、それ以上この関数を呼んでも関数は <var>binary</var>
には何も書き込まず、*<var>binary_length</var> に 0 を書き込み、
<code>EB_SUCCESS</code> を返します。
</p>
<p>
成功すると、この関数は <code>EB_SUCCESS</code> を返します。
失敗すると、<var>binary_length</var> が指す領域に -1 を書き込み、原因を
示すエラーコードを返します。
この場合、バイナリデータの読み込み状態の記録がリセットされますので、
データの続きを読み込むことはできなくなります。
</p>
<p>
あらかじめ、<var>book</var> はいずれかの副本を選択していなくては
なりません。
選択していない場合は、<code>EB_ERR_NO_CUR_SUB</code> を返します。
また、冒頭に挙げた関数の呼び出しが成功していない状態でこの関数を呼ぶと、
<code>EB_ERR_NO_CUR_BINARY</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:compose_movie_file_name"><code>EB_Error_Code eb_compose_movie_file_name (const unsigned int *<var>argv</var>, char *<var>composed_file_name</var>)</code></a></h4>
<p>
関数 <code>eb_compose_movie_file_name()</code> は、動画データのファイル名
を通常の文字列に変換します。
</p>
<p>
EB ライブラリでは、動画データのファイル名はフック関数
<code>EB_HOOK_BEGIN_MPEG</code> に渡された 4 つの int 型引数
(<code>argv[2]</code> <code>argv[5]</code>) によって表現されます。
</p>
<p>
動画データを読み込む際は、これをそのまま <code>eb_set_binary_mpeg()</code>
に渡せば良いのですが、ファイル名を通常の文字列で得たい場合は、この関数を
用います。
たとえば、個々の動画に一意の ID のようなものを振りたい場合は、ファイル
名を ID として使うと良いかも知れません。
なお、この関数で変換して得られるファイル名にはパスが含まれていません。
</p>
<p>
フック関数の引数 <code>argv + 2</code> をこの関数への引数 <var>argv</var>
として渡すと、<var>composed_file_name</var> が指す先の領域に、文字列形式
に変換されたファイル名が格納されます。
ファイル名は最長で <code>EB_MAX_DIRECTORY_NAME_LENGTH</code> (= 8) バイト
になります。
この長さには終端のナル文字の分を含んでいませんので、格納領域にはもう
1 バイト余裕が要ります。
</p>
<p>
なお、格納されたファイル名は、実際に存在するファイル名とは若干異なって
いる可能性があります。
たとえば、英字の大文字と小文字、接尾子の有無などの違いがこれに当たります。
この関数は、あくまで文字列に機械的に変換するだけなので、ファイルが実在
するかどうかのチェックはしません。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:compose_movie_path_name"><code>EB_Error_Code eb_compose_movie_path_name (EB_Book *<var>book</var>, const unsigned int *<var>argv</var>, char *<var>composed_path_name</var>)</code></a></h4>
<p>
関数 <code>eb_compose_movie_path_name()</code> は、動画データのファイル名
を通常の文字列に変換します。
働きは、前述の関数 <code>eb_compose_movie_file_name()</code> に良く
似ていますが、<code>eb_compose_movie_path_name()</code> が返すファイル名
は、絶対パスの形式になっている点が異なります。
</p>
<p>
また、<code>eb_compose_movie_path_name()</code> では、ファイル名が実在
するかどうかのチェックを行うという点も、大きな違いです。
ファイル名を文字列に変換した上で、英字の大文字と小文字の違いや接尾子の
有無は、実在のファイルに合わせて調整したものを返します。
したがって、パスを除いた部分で比較しても、
<code>eb_compose_movie_file_name()</code> が返すファイル名とは必ずしも
一致しません。
</p>
<p>
引数 <code>book</code> は、動画ファイルを収録している副本を選択して
おかなければなりません。
副本を選択していなければ、<code>EB_ERR_NO_CUR_SUB</code> を返します。
</p>
<p>
引数 <code>argv</code> の意味は、<code>eb_compose_movie_file_name()</code>
と同じです。
</p>
<p>
ファイル名の変換が成功すると、関数は <var>composed_path_name</var>
指す先の領域に、文字列形式に変換された動画ファイル名を格納し、
<code>EB_SUCCESS</code> を返します。
ファイル名は最長で <code>EB_MAX_PATH_LENGTH</code> バイトになります。
この長さには終端のナル文字の分を含んでいませんので、格納領域にはもう
1 バイト余裕が要ります。
</p>
<p>
ファイル名が実在しないと、<code>EB_ERR_BAD_FILE_NAME</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:decompose_movie_file_name"><code>EB_Error_Code eb_decompose_movie_file_name (unsigned int *<var>argv</var>, const char *<var>composed_file_name</var>)</code></a></h4>
<p>
関数 <code>eb_compose_movie_file_name()</code> は、
<code>eb_compose_movie_file_name()</code> とちょうど逆の働きをします。
つまり、通常の文字列に変換された動画データのファイル名
<var>composed_file_name</var> を、4 つの int 型引数 <var>argv</var>
戻します。
したがって、<var>argv</var> の指す領域は、少なくとも int 型の値を 4 つ
格納できる大きさが必要です。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-10.html">前へ</a>] [<a href="eb-12.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

1031
lib/ebu/doc/eb-12.html Normal file

File diff suppressed because it is too large Load diff

474
lib/ebu/doc/eb-13.html Normal file
View file

@ -0,0 +1,474 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-12.html">前へ</a>] [<a href="eb-14.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="book-list-on-server">サーバ上の書籍一覧</a></h2>
<p>
EBNET サーバから遠隔アクセスを行う際、サーバがそのクライアントに対して
アクセスを許可している書籍や appendix データの一覧を取得することが
できます。
</p>
<p>
このとき、EBNET サーバを指定する遠隔アクセス記述子には、特定の書籍や
appendix データに対するアクセスとは異なり、書籍名は指定しません。
すなわち、一般形は次のようになります。
</p>
<blockquote>
<pre>
ebnet://<var>ホスト</var>:<var>ポート</var>/
</pre>
</blockquote>
<p>
末尾の `/' はなくても構いません。
<samp>:</samp> とそれに続くポート番号は省略可能で、その場合は
22010 番ポートを利用することを意味します。
</p>
<p>
ebinfo コマンドの --book-list オプション指定時の挙動は、EB ライブラリ
のこの機能によって実装されています。
(ebinfo についての詳細は、
@pxref{Book list on EBNET server, , EBNET サーバの書籍一覧, ebinfo-ja, ebinfo-ja}。)
</p>
<blockquote>
<pre>
% ebinfo --book-list ebnet://localhost
名前 題名
encycl ブラウンコンサイス百科事典
encycl.app ブラウンコンサイス百科事典 (appendix)
crossword クロスワードパズル辞典
travel ワールドトラベルガイド
</pre>
</blockquote>
<p>
名前の末尾が <samp>.app</samp> になっているものは appendix データで、
その他は書籍本体です。
この例の書籍 <samp>encycl</samp> に対してアクセスするなら、
遠隔アクセス識別子は <code>ebnet://localhost/encycl</code> になります。
</p>
<p>
なお、クライアントに対してアクセスを許可していない書籍や appendix データ
は、サーが側で一覧から除外されます。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="eb_booklist-object"><code>EB_BookList</code> オブジェクト</a></h3>
<p>
EBNET サーバの提供する書籍および appendix データの一覧を取得するには、
まず <code>EB_BookList</code> 型のオブジェクトを用意する必要があります。
</p>
<blockquote class="program">
<pre>
EB_BookList bl;
</pre>
</blockquote>
<p>
オブジェクトの領域は、<code>malloc()</code> で確保しても構いません。
</p>
<blockquote class="program">
<pre>
EB_BookList *bl_pointer;
bl_pointer = (EB_BookList *) malloc(sizeof(EB_BookList));
</pre>
</blockquote>
<p>
<code>EB_Book</code> オブジェクトと同様に、<code>EB_BookList</code>
オブジェクトも使う前に中身を初期化する必要があります。
これは、<code>eb_initialize_booklist()</code> という関数で行います。
</p>
<blockquote class="program">
<pre>
eb_initialize_booklist(&amp;bl);
eb_initialize_booklist(bl_pointer);
</pre>
</blockquote>
<p>
初期化が完了したら、特定のサーバとオブジェクトを結びつけます。
たとえば、<code>ebnet://localhost</code> で表されるサーバに対して、
オブジェクトを結びつけるには次のようにします。
</p>
<blockquote class="program">
<pre>
if (eb_bind_booklist(&amp;bl, "ebnet://localhost") != EB_SUCCESS) {
printf("eb_bind_booklist() failed\n");
return;
}
</pre>
</blockquote>
<p>
これはちょうど、<code>EB_Book</code> オブジェクトに対して
<code>eb_bind()</code> を呼ぶのと同じです。
</p>
<p>
こうして、ようやく書籍一覧の情報を取り出すことができます。
これには <code>eb_booklist_book_count()</code>,
<code>eb_booklist_book_name()</code>, <code>eb_booklist_book_title()</code>
という 3 つの関数を使用します。
これらの関数はそれぞれ、クライアントがアクセス可能な書籍の数、各書籍
および appendix データの名称 (アクセス識別子として指定する名前)、各書籍
と appendix データの題名を得ることができます。
</p>
<blockquote class="program">
<pre>
char *name, *title;
int count, i;
count = eb_booklist_book_count(&amp;bl);
for (i = 0; i &lt; count; i++) {
if (eb_booklist_book_name(&amp;bl, i, &amp;name) != EB_SUCCESS) {
printf("eb_booklist_book_name(%d) failed\n", i);
return;
}
if (eb_booklist_book_title(&amp;bl, i, &amp;title) != EB_SUCCESS) {
printf("eb_booklist_book_title(%d) failed\n", i);
return;
}
printf("name = %s, title = %s\n", name, title);
}
</pre>
</blockquote>
<p>
<code>EB_BookList</code> オブジェクトを使い終わったら、必ず後始末を
行います。
</p>
<blockquote class="program">
<pre>
eb_finalize_booklist(&amp;bl);
eb_finalize_booklist(bl_pointer);
</pre>
</blockquote>
<p>
オブジェクトの領域を <code>malloc()</code> で確保した場合は、
<code>eb_finalize_booklist()</code> を呼んだ後ならば、オブジェクトの領域
を安全に解放することができます。
</p>
<blockquote class="program">
<pre>
free(bl_pointer);
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="booklist-data">データ型の詳細</a></h3>
<p>
この節で説明しているデータ型を使うには、次のようにヘッダファイルを
読み込んで下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/booklist.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="type:BookList"><code>EB_BookList</code></a></h4>
<p>
<code>EB_BookList</code> 型は、EBNET サーバ上が使っている書籍および
appendix の一覧を取得する際に用いるオクジェクトの型です。
</p>
<p>
<code>EB_BookList</code> オブジェクトを使用する際は、まずそのオブジェクト
に対して <code>eb_initialize_booklist()</code> を呼んで初期化する必要が
あります。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="booklist-functions">関数の詳細</a></h3>
<p>
この節で説明している関数を使うには、次のようにヘッダファイルを読み込んで
下さい。
</p>
<blockquote class="program">
<pre>
#include &lt;eb/booklist.h&gt;
</pre>
</blockquote>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:initialize_booklist"><code>void eb_initialize_booklist (EB_BookList *<var>bl</var>)</code></a></h4>
<p>
関数 <code>eb_initialize_booklist()</code> は、<var>bl</var> の指す
<code>EB_BookList</code> オブジェクトを初期化します。
<code>EB_BookList</code> オブジェクトに対して EB ライブラリの他の関数を
呼ぶ前に、必ずそのオブジェクトを初期化しなくてはなりません。
初期化していないオブジェクトに対して、EB ライブラリの他の関数を呼んだ
場合の動作は未定義です。
また、すでに初期化したオブジェクトに対して、
再度 <code>eb_initialize_booklist()</code> を呼んではいけません。
呼んだ場合の動作は未定義です。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:bind_booklist"><code>EB_Error_Code eb_bind_booklist (EB_BookList *<var>bl</var>, const char *<var>path</var>)</code></a></h4>
<p>
関数 <code>eb_bind_booklist()</code> は、<var>app</var> の指す
<code>EB_BookList</code> オブジェクトを、遠隔アクセス記述子 <var>path</var>
で指定された EBNET サーバに結び付けます。
</p>
<p>
オブジェクトがすでにサーバに結び付いていた場合、そのサーバとの結び付き
を解いてから、<var>path</var> にあるサーバに結び付けます。
</p>
<p>
成功すると、関数は <code>EB_SUCCESS</code> を返します。
失敗すると、オブジェクトをサーバとの結び付きを解かれた状態にして、原因
を示すエラーコードを返します。
</p>
<p>
<var>path</var> は、<code>EB_MAX_PATH_LENGTH</code> バイトに収まて
いなくてはなりません。
これを超えると、<code>EB_ERR_TOO_LONG_FILE_NAME</code> を返します。
また、書籍名を指定していない遠隔アクセス記述子でなければなりません。
それ以外の形式だと、<code>EB_ERR_BAD_FILE_NAME</code> を返します。
</p>
<p>
使用している EB ライブラリのバイナリが、遠隔アクセスに非対応のもので
ある場合、<code>EB_ERR_EBNET_UNSUPPORTED</code> が返ります。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:finalize_booklist"><code>void eb_finalize_booklist (EB_BookList *<var>bl</var>)</code></a></h4>
<p>
関数 <code>eb_finalize_booklist()</code> は、<var>bl</var> が指す
<code>EB_BookList</code> オブジェクトの後始末を行います。
</p>
<p>
オブジェクトが割り当てて管理していたメモリはすべて解放され、
ファイルディスクリプタもすべて閉じられます。
オブジェクトが EBNET サーバと結び付いていた場合は、結び付きが解かれます。
</p>
<p>
後始末をしたオブジェクトに対して <code>eb_bind_booklist()</code> を呼ぶ
ことで、オブジェクトを再利用することができます。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:booklist_book_count"><code>int eb_booklist_book_count (EB_BookList *<var>bl</var>)</code></a></h4>
<p>
関数 <code>eb_booklist_book_count()</code> は、EBNET サーバがこの
クライアントに対してアクセスを許可している書籍および appendix データの数
を取得します。
</p>
<p>
オブジェクト <var>bl</var> の指す <code>EB_BookList</code> オブジェクトは、
あらかじめ EBNET サーバに結びついている必要があります。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOKLIST</code> を返します。
</p>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:booklist_book_name"><code>EB_Error_Code eb_booklist_book_name (EB_BookList *<var>bl</var>, int <var>i</var>, char **<var>name</var>)</code></a></h4>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<h4><a name="func:booklist_book_title"><code>EB_Error_Code eb_booklist_book_title (EB_BookList *<var>bl</var>, int <var>i</var>, char **<var>title</var>)</code></a></h4>
<p>
関数 <code>eb_booklist_book_name()</code> は、EBNET サーバの書籍や
appendix データの名称を取得します。
ここで言う「名称」とは、遠隔アクセス識別子で指定する書籍名のことです。
つまり、<samp>ebnet://localhost/dict</samp><samp>dict</samp> の部分
を指します。
同様に、関数 <code>eb_booklist_book_title()</code> は、書籍や appendix
の題名を取得します。
</p>
<p>
いずれの関数も、EBNET サーバ上の何番目の書籍もしくは appendix の情報を
取得するのかを、引数 <var>i</var> で指定します。
先頭は 1 番目ではなく 0 番目になります。
</p>
<p>
成功すると、関数は書籍の名称、題名へのポインタを *<var>name</var>,
*<var>title</var> に書き込み、<code>EB_SUCCESS</code> を返します。
なお、このポインタ値は オブジェクト <code>bl</code> が保持している
文字列を指すようになっています。
<code>bl</code> に対して <code>eb_finalize_booklist()</code> を呼んで
しまうと、この文字列も参照不可能になってしまいますので、注意して下さい。
</p>
<p>
オブジェクト <var>bl</var> の指す <code>EB_BookList</code> オブジェクト
は、あらかじめ EBNET サーバに結びついている必要があります。
結びついていない場合は、<code>EB_ERR_UNBOUND_BOOKLIST</code> を返します。
また、<var>i</var> は 0 以上かつサーバが提供している書籍および appendix
の総数未満でなければなりません。
これ以外の値のときは、<code>EB_ERR_NO_SUCH_BOOK</code> が返ります。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="booklist-sample">サンプルプログラム</a></h3>
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2003-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* booklist &lt;remote-access-ideintifier&gt;
* 例:
* booklist ebnet://localhost
* 説明:
* &lt;remote-access-ideintifier&gt; で指定した EBNET サーバに接続し
* て、サーバの提供する書籍、appendix の一覧を表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/booklist.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_BookList bl;
int book_count;
char *name, *title;
int i;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path remote-access-identifier\n",
argv[0]);
exit(1);
}
/* EB ライブラリと `bl' を初期化。*/
eb_initialize_library();
eb_initialize_booklist(&amp;bl);
/* EBNET サーバを `bl' に結び付ける。*/
error_code = eb_bind_booklist(&amp;bl, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the EBNET server, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* サーバ上の書籍、appendix の個数を取得。*/
error_code = eb_booklist_book_count(&amp;bl, &amp;book_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the number of books, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
for (i = 0; i &lt; book_count; i++) {
/* 書籍、appendix の名称を取得。*/
error_code = eb_booklist_book_name(&amp;bl, i, &amp;name);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get book name #%d, %s\n",
argv[0], i, eb_error_message(error_code));
goto die;
}
/* 書籍、appendix の題名を取得。*/
error_code = eb_booklist_book_name(&amp;bl, i, &amp;title);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get book title #%d, %s\n",
argv[0], i, eb_error_message(error_code));
goto die;
}
printf("%-20s %s\n", name, title);
}
/* `bl' と EB ライブラリの利用を終了。*/
eb_finalize_booklist(&amp;bl);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_booklist(&amp;bl);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-12.html">前へ</a>] [<a href="eb-14.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

419
lib/ebu/doc/eb-14.html Normal file
View file

@ -0,0 +1,419 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-13.html">前へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h2><a name="indice">索引</a></h2>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="data-type-index">データ型の索引</a></h3>
<p>
型名の先頭の <code>EB_</code> は省略しています。
</p>
<dl>
<dt>A
<dd><a href="eb-12.html#type:Appendix">Appendix</a>
<dt>B
<dd><a href="eb-05.html#type:Book">Book</a>
<dd><a href="eb-13.html#type:BookList">BookList</a>
<dt>D
<dd><a href="eb-05.html#type:Disc_Code">Disc_Code</a>
<dt>E
<dd><a href="eb-05.html#type:EB_Character_Code">EB_Character_Code</a>
<dd><a href="eb-06.html#type:Error_Code">Error_Code</a>
<dt>F
<dd><a href="eb-10.html#type:Font_Code">Font_Code</a>
<dt>H
<dd><a href="eb-08.html#type:Hit">Hit</a>
<dd><a href="eb-09.html#type:Hook">Hook</a>
<dd><a href="eb-09.html#type:Hook_Code">Hook_Code</a>
<dd><a href="eb-09.html#type:Hookset">Hookset</a>
<dt>M
<dd><a href="eb-08.html#type:Multi_Search_Code">Multi_Search_Code</a>
<dt>P
<dd><a href="eb-08.html#type:Position">Position</a>
<dt>S
<dd><a href="eb-07.html#type:Subbook_Code">Subbook_Code</a>
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="function-index">関数の索引</a></h3>
<p>
関数名の先頭の <code>eb_</code> は省略しています。
</p>
<dl>
<dt>A
<dd><a href="eb-12.html#func:appendix_path">appendix_path</a>
<dd><a href="eb-12.html#func:appendix_subbook">appendix_subbook</a>
<dd><a href="eb-12.html#func:appendix_subbook_directory">appendix_subbook_directory</a>
<dd><a href="eb-12.html#func:appendix_subbook_directory2">appendix_subbook_directory2</a>
<dd><a href="eb-12.html#func:appendix_subbook_list">appendix_subbook_list</a>
<dt>B
<dd><a href="eb-12.html#func:backward_narrow_alt_character">backward_narrow_alt_character</a>
<dd><a href="eb-10.html#func:backward_narrow_font_character">backward_narrow_font_character</a>
<dd><a href="eb-09.html#func:backward_text">backward_text</a>
<dd><a href="eb-12.html#func:backward_wide_alt_character">backward_wide_alt_character</a>
<dd><a href="eb-10.html#func:backward_wide_font_character">backward_wide_font_character</a>
<dd><a href="eb-05.html#func:bind">bind</a>
<dd><a href="eb-12.html#func:bind_appendix">bind_appendix</a>
<dd><a href="eb-13.html#func:bind_booklist">bind_booklist</a>
<dd><a href="eb-10.html#func:bitmap_to_bmp">bitmap_to_bmp</a>
<dd><a href="eb-10.html#func:bitmap_to_gif">bitmap_to_gif</a>
<dd><a href="eb-10.html#func:bitmap_to_png">bitmap_to_png</a>
<dd><a href="eb-10.html#func:bitmap_to_xbm">bitmap_to_xbm</a>
<dd><a href="eb-10.html#func:bitmap_to_xpm">bitmap_to_xpm</a>
<dd><a href="eb-13.html#func:booklist_book_count">booklist_book_count</a>
<dd><a href="eb-13.html#func:booklist_book_name">booklist_book_name</a>
<dd><a href="eb-13.html#func:booklist_book_title">booklist_book_title</a>
<dt>C
<dd><a href="eb-05.html#func:character_code">character_code</a>
<dd><a href="eb-11.html#func:compose_movie_file_name">compose_movie_file_name</a>
<dd><a href="eb-11.html#func:compose_movie_path_name">compose_movie_path_name</a>
<dd><a href="eb-09.html#func:copyright">copyright</a>
<dd><a href="eb-09.html#func:current_candidate">current_candidate</a>
<dt>D
<dd><a href="eb-11.html#func:decompose_movie_file_name">decompose_movie_file_name</a>
<dd><a href="eb-05.html#func:disc_type">disc_type</a>
<dt>E
<dd><a href="eb-06.html#func:error_message">error_message</a>
<dd><a href="eb-06.html#func:error_string">error_string</a>
<dt>F
<dd><a href="eb-12.html#func:finalize_appendix">finalize_appendix</a>
<dd><a href="eb-05.html#func:finalize_book">finalize_book</a>
<dd><a href="eb-13.html#func:finalize_booklist">finalize_booklist</a>
<dd><a href="eb-09.html#func:finalize_hookset">finalize_hookset</a>
<dd><a href="eb-04.html#func:finalize_library">finalize_library</a>
<dd><a href="eb-10.html#func:font">font</a>
<dd><a href="eb-10.html#func:font_height">font_height</a>
<dd><a href="eb-10.html#func:font_height2">font_height2</a>
<dd><a href="eb-10.html#func:font_list">font_list</a>
<dd><a href="eb-09.html#func:forward_heading">forward_heading</a>
<dd><a href="eb-10.html#func:forward_narrow_font_character">forward_narrow_font_character</a>
<dd><a href="eb-09.html#func:forward_text">forward_text</a>
<dd><a href="eb-10.html#func:forward_wide_font_character">forward_wide_font_character</a>
<dt>H
<dd><a href="eb-09.html#func:have_copyright">have_copyright</a>
<dd><a href="eb-08.html#func:have_endword_search">have_endword_search</a>
<dd><a href="eb-08.html#func:have_exactword_search">have_exactword_search</a>
<dd><a href="eb-10.html#func:have_font">have_font</a>
<dd><a href="eb-08.html#func:have_keyword_search">have_keyword_search</a>
<dd><a href="eb-09.html#func:have_menu">have_menu</a>
<dd><a href="eb-08.html#func:have_multi_search">have_multi_search</a>
<dd><a href="eb-12.html#func:have_narrow_alt">have_narrow_alt</a>
<dd><a href="eb-10.html#func:have_narrow_font">have_narrow_font</a>
<dd><a href="eb-12.html#func:have_stop_code">have_stop_code</a>
<dd><a href="eb-09.html#func:have_text">have_text</a>
<dd><a href="eb-12.html#func:have_wide_alt">have_wide_alt</a>
<dd><a href="eb-10.html#func:have_wide_font">have_wide_font</a>
<dd><a href="eb-08.html#func:have_word_search">have_word_search</a>
<dd><a href="eb-08.html#func:hit_list">hit_list</a>
<dd><a href="eb-09.html#func:hook_empty">hook_empty</a>
<dd><a href="eb-09.html#func:hook_euc_to_ascii">hook_euc_to_ascii</a>
<dd><a href="eb-09.html#func:hook_narrow_character_text">hook_narrow_character_text</a>
<dd><a href="eb-09.html#func:hook_newline">hook_newline</a>
<dd><a href="eb-09.html#func:hook_wide_character_text">hook_wide_character_text</a>
<dt>I
<dd><a href="eb-12.html#func:initialize_appendix">initialize_appendix</a>
<dd><a href="eb-05.html#func:initialize_book">initialize_book</a>
<dd><a href="eb-13.html#func:initialize_booklist">initialize_booklist</a>
<dd><a href="eb-09.html#func:initialize_hookset">initialize_hookset</a>
<dd><a href="eb-04.html#func:initialize_library">initialize_library</a>
<dd><a href="eb-12.html#func:is_appendix_bound">is_appendix_bound</a>
<dd><a href="eb-05.html#func:is_bound">is_bound</a>
<dd><a href="eb-09.html#func:is_text_stopped">is_text_stopped</a>
<dt>L
<dd><a href="eb-12.html#func:load_all_appendix_subbooks">load_all_appendix_subbooks</a>
<dd><a href="eb-07.html#func:load_all_subbooks">load_all_subbooks</a>
<dt>M
<dd><a href="eb-09.html#func:menu">menu</a>
<dd><a href="eb-08.html#func:multi_entry_candidates">multi_entry_candidates</a>
<dd><a href="eb-08.html#func:multi_entry_count">multi_entry_count</a>
<dd><a href="eb-08.html#func:multi_entry_have_candidates">multi_entry_have_candidates</a>
<dd><a href="eb-08.html#func:multi_entry_label">multi_entry_label</a>
<dd><a href="eb-08.html#func:multi_search_list">multi_search_list</a>
<dd><a href="eb-08.html#func:multi_title">multi_title</a>
<dt>N
<dd><a href="eb-12.html#func:narrow_alt_character_text">narrow_alt_character_text</a>
<dd><a href="eb-12.html#func:narrow_alt_end">narrow_alt_end</a>
<dd><a href="eb-12.html#func:narrow_alt_start">narrow_alt_start</a>
<dd><a href="eb-10.html#func:narrow_font_bmp_size">narrow_font_bmp_size</a>
<dd><a href="eb-10.html#func:narrow_font_character_bitmap">narrow_font_character_bitmap</a>
<dd><a href="eb-10.html#func:narrow_font_end">narrow_font_end</a>
<dd><a href="eb-10.html#func:narrow_font_gif_size">narrow_font_gif_size</a>
<dd><a href="eb-10.html#func:narrow_font_png_size">narrow_font_png_size</a>
<dd><a href="eb-10.html#func:narrow_font_size">narrow_font_size</a>
<dd><a href="eb-10.html#func:narrow_font_size2">narrow_font_size2</a>
<dd><a href="eb-10.html#func:narrow_font_start">narrow_font_start</a>
<dd><a href="eb-10.html#func:narrow_font_width">narrow_font_width</a>
<dd><a href="eb-10.html#func:narrow_font_width2">narrow_font_width2</a>
<dd><a href="eb-10.html#func:narrow_font_xbm_size">narrow_font_xbm_size</a>
<dd><a href="eb-10.html#func:narrow_font_xpm_size">narrow_font_xpm_size</a>
<dt>P
<dd><a href="eb-05.html#func:path">path</a>
<dt>R
<dd><a href="eb-11.html#func:read_binary">read_binary</a>
<dd><a href="eb-09.html#func:read_heading">read_heading</a>
<dd><a href="eb-09.html#func:read_rawtext">read_rawtext</a>
<dd><a href="eb-09.html#func:read_text">read_text</a>
<dt>S
<dd><a href="eb-08.html#func:search_cross">search_cross</a>
<dd><a href="eb-08.html#func:search_endword">search_endword</a>
<dd><a href="eb-08.html#func:search_exactword">search_exactword</a>
<dd><a href="eb-08.html#func:search_keyword">search_keyword</a>
<dd><a href="eb-08.html#func:search_multi">search_multi</a>
<dd><a href="eb-08.html#func:search_word">search_word</a>
<dd><a href="eb-09.html#func:seek_text">seek_text</a>
<dd><a href="eb-12.html#func:set_appendix_subbook">set_appendix_subbook</a>
<dd><a href="eb-11.html#func:set_binary_color_graphic">set_binary_color_graphic</a>
<dd><a href="eb-11.html#func:set_binary_mono_graphic">set_binary_mono_graphic</a>
<dd><a href="eb-11.html#func:set_binary_mpeg">set_binary_mpeg</a>
<dd><a href="eb-11.html#func:set_binary_wave">set_binary_wave</a>
<dd><a href="eb-10.html#func:set_font">set_font</a>
<dd><a href="eb-09.html#func:set_hook">set_hook</a>
<dd><a href="eb-09.html#func:set_hooks">set_hooks</a>
<dd><a href="eb-07.html#func:set_subbook">set_subbook</a>
<dd><a href="eb-12.html#func:stop_code">stop_code</a>
<dd><a href="eb-07.html#func:subbook">subbook</a>
<dd><a href="eb-07.html#func:subbook_directory">subbook_directory</a>
<dd><a href="eb-07.html#func:subbook_directory2">subbook_directory2</a>
<dd><a href="eb-07.html#func:subbook_list">subbook_list</a>
<dd><a href="eb-07.html#func:subbook_title">subbook_title</a>
<dd><a href="eb-07.html#func:subbook_title2">subbook_title2</a>
<dt>T
<dd><a href="eb-09.html#func:tell_text">tell_text</a>
<dd><a href="eb-09.html#func:text">text</a>
<dt>U
<dd><a href="eb-12.html#func:unset_appendix_subbook">unset_appendix_subbook</a>
<dd><a href="eb-10.html#func:unset_font">unset_font</a>
<dd><a href="eb-07.html#func:unset_subbook">unset_subbook</a>
<dt>W
<dd><a href="eb-12.html#func:wide_alt_character_text">wide_alt_character_text</a>
<dd><a href="eb-12.html#func:wide_alt_end">wide_alt_end</a>
<dd><a href="eb-12.html#func:wide_alt_start">wide_alt_start</a>
<dd><a href="eb-10.html#func:wide_font_bmp_size">wide_font_bmp_size</a>
<dd><a href="eb-10.html#func:wide_font_character_bitmap">wide_font_character_bitmap</a>
<dd><a href="eb-10.html#func:wide_font_end">wide_font_end</a>
<dd><a href="eb-10.html#func:wide_font_gif_size">wide_font_gif_size</a>
<dd><a href="eb-10.html#func:wide_font_png_size">wide_font_png_size</a>
<dd><a href="eb-10.html#func:wide_font_size">wide_font_size</a>
<dd><a href="eb-10.html#func:wide_font_size2">wide_font_size2</a>
<dd><a href="eb-10.html#func:wide_font_start">wide_font_start</a>
<dd><a href="eb-10.html#func:wide_font_width">wide_font_width</a>
<dd><a href="eb-10.html#func:wide_font_width2">wide_font_width2</a>
<dd><a href="eb-10.html#func:wide_font_xbm_size">wide_font_xbm_size</a>
<dd><a href="eb-10.html#func:wide_font_xpm_size">wide_font_xpm_size</a>
<dd><a href="eb-09.html#func:write_text">write_text</a>
<dd><a href="eb-09.html#func:write_text_byte1">write_text_byte1</a>
<dd><a href="eb-09.html#func:write_text_byte2">write_text_byte2</a>
<dd><a href="eb-09.html#func:write_text_string">write_text_string</a>
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="const-index">定数の索引</a></h3>
<p>
定数名の先頭の <code>EB_</code> は省略しています。
</p>
<dl>
<dt>E
<dd><a href="eb-06.html#const:ERR_BAD_DIR_NAME">ERR_BAD_DIR_NAME</a>
<dd><a href="eb-06.html#const:ERR_BAD_FILE_NAME">ERR_BAD_FILE_NAME</a>
<dd><a href="eb-06.html#const:ERR_BAD_WORD">ERR_BAD_WORD</a>
<dd><a href="eb-06.html#const:ERR_DIFF_CONTENT">ERR_DIFF_CONTENT</a>
<dd><a href="eb-06.html#const:ERR_EBNET_FAIL_CONNECT">ERR_EBNET_FAIL_CONNECT</a>
<dd><a href="eb-06.html#const:ERR_EBNET_NO_PERMISSION">ERR_EBNET_NO_PERMISSION</a>
<dd><a href="eb-06.html#const:ERR_EBNET_SERVER_BUSY">ERR_EBNET_SERVER_BUSY</a>
<dd><a href="eb-06.html#const:ERR_EBNET_UNSUPPORTED">ERR_EBNET_UNSUPPORTED</a>
<dd><a href="eb-06.html#const:ERR_EMPTY_WORD">ERR_EMPTY_WORD</a>
<dd><a href="eb-06.html#const:ERR_END_OF_CONTENT">ERR_END_OF_CONTENT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_GETCWD">ERR_FAIL_GETCWD</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_APP">ERR_FAIL_OPEN_APP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_BINARY">ERR_FAIL_OPEN_BINARY</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_CAT">ERR_FAIL_OPEN_CAT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_CATAPP">ERR_FAIL_OPEN_CATAPP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_FONT">ERR_FAIL_OPEN_FONT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_OPEN_TEXT">ERR_FAIL_OPEN_TEXT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_APP">ERR_FAIL_READ_APP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_BINARY">ERR_FAIL_READ_BINARY</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_CAT">ERR_FAIL_READ_CAT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_CATAPP">ERR_FAIL_READ_CATAPP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_FONT">ERR_FAIL_READ_FONT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_READ_TEXT">ERR_FAIL_READ_TEXT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_APP">ERR_FAIL_SEEK_APP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_BINARY">ERR_FAIL_SEEK_BINARY</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_CAT">ERR_FAIL_SEEK_CAT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_CATAPP">ERR_FAIL_SEEK_CATAPP</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_FONT">ERR_FAIL_SEEK_FONT</a>
<dd><a href="eb-06.html#const:ERR_FAIL_SEEK_TEXT">ERR_FAIL_SEEK_TEXT</a>
<dd><a href="eb-06.html#const:ERR_MEMORY_EXHAUSTED">ERR_MEMORY_EXHAUSTED</a>
<dd><a href="eb-06.html#const:ERR_NO_APPSUB">ERR_NO_APPSUB</a>
<dd><a href="eb-06.html#const:ERR_NO_CANDIDATES">ERR_NO_CANDIDATES</a>
<dd><a href="eb-06.html#const:ERR_NO_CUR_APPSUB">ERR_NO_CUR_APPSUB</a>
<dd><a href="eb-06.html#const:ERR_NO_CUR_BINARY">ERR_NO_CUR_BINARY</a>
<dd><a href="eb-06.html#const:ERR_NO_CUR_FONT">ERR_NO_CUR_FONT</a>
<dd><a href="eb-06.html#const:ERR_NO_CUR_SUB">ERR_NO_CUR_SUB</a>
<dd><a href="eb-06.html#const:ERR_NO_FONT">ERR_NO_FONT</a>
<dd><a href="eb-06.html#const:ERR_NO_PREV_SEARCH">ERR_NO_PREV_SEARCH</a>
<dd><a href="eb-06.html#const:ERR_NO_PREV_SEEK">ERR_NO_PREV_SEEK</a>
<dd><a href="eb-06.html#const:ERR_NO_SUB">ERR_NO_SUB</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_APPSUB">ERR_NO_SUCH_APPSUB</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_BINARY">ERR_NO_SUCH_BINARY</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_BOOK">ERR_NO_SUCH_BOOK</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_CHAR_BMP">ERR_NO_SUCH_CHAR_BMP</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_CHAR_TEXT">ERR_NO_SUCH_CHAR_TEXT</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_ENTRY_ID">ERR_NO_SUCH_ENTRY_ID</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_FONT">ERR_NO_SUCH_FONT</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_HOOK">ERR_NO_SUCH_HOOK</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_MULTI_ID">ERR_NO_SUCH_MULTI_ID</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_SEARCH">ERR_NO_SUCH_SEARCH</a>
<dd><a href="eb-06.html#const:ERR_NO_SUCH_SUB">ERR_NO_SUCH_SUB</a>
<dd><a href="eb-06.html#const:ERR_NO_TEXT">ERR_NO_TEXT</a>
<dd><a href="eb-06.html#const:ERR_NO_WORD">ERR_NO_WORD</a>
<dd><a href="eb-06.html#const:ERR_TOO_LONG_FILE_NAME">ERR_TOO_LONG_FILE_NAME</a>
<dd><a href="eb-06.html#const:ERR_TOO_LONG_WORD">ERR_TOO_LONG_WORD</a>
<dd><a href="eb-06.html#const:ERR_TOO_MANY_WORDS">ERR_TOO_MANY_WORDS</a>
<dd><a href="eb-06.html#const:ERR_UNBOUND_APP">ERR_UNBOUND_APP</a>
<dd><a href="eb-06.html#const:ERR_UNBOUND_BOOK">ERR_UNBOUND_BOOK</a>
<dd><a href="eb-06.html#const:ERR_UNBOUND_BOOKLIST">ERR_UNBOUND_BOOKLIST</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_APP">ERR_UNEXP_APP</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_BINARY">ERR_UNEXP_BINARY</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_CAT">ERR_UNEXP_CAT</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_CATAPP">ERR_UNEXP_CATAPP</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_FONT">ERR_UNEXP_FONT</a>
<dd><a href="eb-06.html#const:ERR_UNEXP_TEXT">ERR_UNEXP_TEXT</a>
<dt>H
<dd><a href="eb-10.html#const:HEIGHT_NARROW_FONT_16">HEIGHT_NARROW_FONT_16</a>
<dd><a href="eb-10.html#const:HEIGHT_NARROW_FONT_24">HEIGHT_NARROW_FONT_24</a>
<dd><a href="eb-10.html#const:HEIGHT_NARROW_FONT_30">HEIGHT_NARROW_FONT_30</a>
<dd><a href="eb-10.html#const:HEIGHT_NARROW_FONT_48">HEIGHT_NARROW_FONT_48</a>
<dd><a href="eb-10.html#const:HEIGHT_WIDE_FONT_16">HEIGHT_WIDE_FONT_16</a>
<dd><a href="eb-10.html#const:HEIGHT_WIDE_FONT_24">HEIGHT_WIDE_FONT_24</a>
<dd><a href="eb-10.html#const:HEIGHT_WIDE_FONT_30">HEIGHT_WIDE_FONT_30</a>
<dd><a href="eb-10.html#const:HEIGHT_WIDE_FONT_48">HEIGHT_WIDE_FONT_48</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_CANDIDATE">HOOK_BEGIN_CANDIDATE</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_CLICKABLE_AREA">HOOK_BEGIN_CLICKABLE_AREA</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_COLOR_BMP">HOOK_BEGIN_COLOR_BMP</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_COLOR_JPEG">HOOK_BEGIN_COLOR_JPEG</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_DECORATION">HOOK_BEGIN_DECORATION</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_EMPHASIS">HOOK_BEGIN_EMPHASIS</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_GRAY_GRAPHIC">HOOK_BEGIN_GRAY_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_IN_COLOR_BMP">HOOK_BEGIN_IN_COLOR_BMP</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_IN_COLOR_JPEG">HOOK_BEGIN_IN_COLOR_JPEG</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_KEYWORD">HOOK_BEGIN_KEYWORD</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_MONO_GRAPHIC">HOOK_BEGIN_MONO_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_MPEG">HOOK_BEGIN_MPEG</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_NARROW">HOOK_BEGIN_NARROW</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_NO_NEWLINE">HOOK_BEGIN_NO_NEWLINE</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_REFERENCE">HOOK_BEGIN_REFERENCE</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_SUBSCRIPT">HOOK_BEGIN_SUBSCRIPT</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_SUPERSCRIPT">HOOK_BEGIN_SUPERSCRIPT</a>
<dd><a href="eb-09.html#const:HOOK_BEGIN_WAVE">HOOK_BEGIN_WAVE</a>
<dd><a href="eb-09.html#const:HOOK_END_CANDIDATE_GROUP">HOOK_END_CANDIDATE_GROUP</a>
<dd><a href="eb-09.html#const:HOOK_END_CANDIDATE_LEAF">HOOK_END_CANDIDATE_LEAF</a>
<dd><a href="eb-09.html#const:HOOK_END_CLICKABLE_AREA">HOOK_END_CLICKABLE_AREA</a>
<dd><a href="eb-09.html#const:HOOK_END_COLOR_GRAPHIC">HOOK_END_COLOR_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_END_DECORATION">HOOK_END_DECORATION</a>
<dd><a href="eb-09.html#const:HOOK_END_EMPHASIS">HOOK_END_EMPHASIS</a>
<dd><a href="eb-09.html#const:HOOK_END_GRAY_GRAPHIC">HOOK_END_GRAY_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_END_IN_COLOR_GRAPHIC">HOOK_END_IN_COLOR_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_END_KEYWORD">HOOK_END_KEYWORD</a>
<dd><a href="eb-09.html#const:HOOK_END_MONO_GRAPHIC">HOOK_END_MONO_GRAPHIC</a>
<dd><a href="eb-09.html#const:HOOK_END_MPEG">HOOK_END_MPEG</a>
<dd><a href="eb-09.html#const:HOOK_END_NARROW">HOOK_END_NARROW</a>
<dd><a href="eb-09.html#const:HOOK_END_NO_NEWLINE">HOOK_END_NO_NEWLINE</a>
<dd><a href="eb-09.html#const:HOOK_END_REFERENCE">HOOK_END_REFERENCE</a>
<dd><a href="eb-09.html#const:HOOK_END_SUBSCRIPT">HOOK_END_SUBSCRIPT</a>
<dd><a href="eb-09.html#const:HOOK_END_SUPERSCRIPT">HOOK_END_SUPERSCRIPT</a>
<dd><a href="eb-09.html#const:HOOK_END_WAVE">HOOK_END_WAVE</a>
<dd><a href="eb-09.html#const:HOOK_GB2312">HOOK_GB2312</a>
<dd><a href="eb-09.html#const:HOOK_INITIALIZE">HOOK_INITIALIZE</a>
<dd><a href="eb-09.html#const:HOOK_ISO8859_1">HOOK_ISO8859_1</a>
<dd><a href="eb-09.html#const:HOOK_NARROW_FONT">HOOK_NARROW_FONT</a>
<dd><a href="eb-09.html#const:HOOK_NARROW_JISX0208">HOOK_NARROW_JISX0208</a>
<dd><a href="eb-09.html#const:HOOK_NEWLINE">HOOK_NEWLINE</a>
<dd><a href="eb-09.html#const:HOOK_NULL">HOOK_NULL</a>
<dd><a href="eb-09.html#const:HOOK_SET_INDENT">HOOK_SET_INDENT</a>
<dd><a href="eb-09.html#const:HOOK_WIDE_FONT">HOOK_WIDE_FONT</a>
<dd><a href="eb-09.html#const:HOOK_WIDE_JISX0208">HOOK_WIDE_JISX0208</a>
<dt>S
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16">SIZE_NARROW_FONT_16</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16_BMP">SIZE_NARROW_FONT_16_BMP</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16_GIF">SIZE_NARROW_FONT_16_GIF</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16_PNG">SIZE_NARROW_FONT_16_PNG</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16_XBM">SIZE_NARROW_FONT_16_XBM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_16_XPM">SIZE_NARROW_FONT_16_XPM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24">SIZE_NARROW_FONT_24</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24_BMP">SIZE_NARROW_FONT_24_BMP</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24_GIF">SIZE_NARROW_FONT_24_GIF</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24_PNG">SIZE_NARROW_FONT_24_PNG</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24_XBM">SIZE_NARROW_FONT_24_XBM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_24_XPM">SIZE_NARROW_FONT_24_XPM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30">SIZE_NARROW_FONT_30</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30_BMP">SIZE_NARROW_FONT_30_BMP</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30_GIF">SIZE_NARROW_FONT_30_GIF</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30_PNG">SIZE_NARROW_FONT_30_PNG</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30_XBM">SIZE_NARROW_FONT_30_XBM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_30_XPM">SIZE_NARROW_FONT_30_XPM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48">SIZE_NARROW_FONT_48</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48_BMP">SIZE_NARROW_FONT_48_BMP</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48_GIF">SIZE_NARROW_FONT_48_GIF</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48_PNG">SIZE_NARROW_FONT_48_PNG</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48_XBM">SIZE_NARROW_FONT_48_XBM</a>
<dd><a href="eb-10.html#const:SIZE_NARROW_FONT_48_XPM">SIZE_NARROW_FONT_48_XPM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16">SIZE_WIDE_FONT_16</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16_BMP">SIZE_WIDE_FONT_16_BMP</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16_GIF">SIZE_WIDE_FONT_16_GIF</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16_PNG">SIZE_WIDE_FONT_16_PNG</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16_XBM">SIZE_WIDE_FONT_16_XBM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_16_XPM">SIZE_WIDE_FONT_16_XPM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24">SIZE_WIDE_FONT_24</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24_BMP">SIZE_WIDE_FONT_24_BMP</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24_GIF">SIZE_WIDE_FONT_24_GIF</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24_PNG">SIZE_WIDE_FONT_24_PNG</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24_XBM">SIZE_WIDE_FONT_24_XBM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_24_XPM">SIZE_WIDE_FONT_24_XPM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30">SIZE_WIDE_FONT_30</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30_BMP">SIZE_WIDE_FONT_30_BMP</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30_GIF">SIZE_WIDE_FONT_30_GIF</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30_PNG">SIZE_WIDE_FONT_30_PNG</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30_XBM">SIZE_WIDE_FONT_30_XBM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_30_XPM">SIZE_WIDE_FONT_30_XPM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48">SIZE_WIDE_FONT_48</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48_BMP">SIZE_WIDE_FONT_48_BMP</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48_GIF">SIZE_WIDE_FONT_48_GIF</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48_PNG">SIZE_WIDE_FONT_48_PNG</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48_XBM">SIZE_WIDE_FONT_48_XBM</a>
<dd><a href="eb-10.html#const:SIZE_WIDE_FONT_48_XPM">SIZE_WIDE_FONT_48_XPM</a>
<dd><a href="eb-06.html#const:SUCCESS">SUCCESS</a>
<dt>W
<dd><a href="eb-10.html#const:WIDTH_NARROW_FONT_16">WIDTH_NARROW_FONT_16</a>
<dd><a href="eb-10.html#const:WIDTH_NARROW_FONT_24">WIDTH_NARROW_FONT_24</a>
<dd><a href="eb-10.html#const:WIDTH_NARROW_FONT_30">WIDTH_NARROW_FONT_30</a>
<dd><a href="eb-10.html#const:WIDTH_NARROW_FONT_48">WIDTH_NARROW_FONT_48</a>
<dd><a href="eb-10.html#const:WIDTH_WIDE_FONT_16">WIDTH_WIDE_FONT_16</a>
<dd><a href="eb-10.html#const:WIDTH_WIDE_FONT_24">WIDTH_WIDE_FONT_24</a>
<dd><a href="eb-10.html#const:WIDTH_WIDE_FONT_30">WIDTH_WIDE_FONT_30</a>
<dd><a href="eb-10.html#const:WIDTH_WIDE_FONT_48">WIDTH_WIDE_FONT_48</a>
</dl>
<hr>
<p>
[<a href="eb-13.html">前へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

10941
lib/ebu/doc/eb-cat.html Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,181 @@
<dl>
<dt>E
<dd><a href="#const:ERR_BAD_DIR_NAME">ERR_BAD_DIR_NAME</a>
<dd><a href="#const:ERR_BAD_FILE_NAME">ERR_BAD_FILE_NAME</a>
<dd><a href="#const:ERR_BAD_WORD">ERR_BAD_WORD</a>
<dd><a href="#const:ERR_DIFF_CONTENT">ERR_DIFF_CONTENT</a>
<dd><a href="#const:ERR_EBNET_FAIL_CONNECT">ERR_EBNET_FAIL_CONNECT</a>
<dd><a href="#const:ERR_EBNET_NO_PERMISSION">ERR_EBNET_NO_PERMISSION</a>
<dd><a href="#const:ERR_EBNET_SERVER_BUSY">ERR_EBNET_SERVER_BUSY</a>
<dd><a href="#const:ERR_EBNET_UNSUPPORTED">ERR_EBNET_UNSUPPORTED</a>
<dd><a href="#const:ERR_EMPTY_WORD">ERR_EMPTY_WORD</a>
<dd><a href="#const:ERR_END_OF_CONTENT">ERR_END_OF_CONTENT</a>
<dd><a href="#const:ERR_FAIL_GETCWD">ERR_FAIL_GETCWD</a>
<dd><a href="#const:ERR_FAIL_OPEN_APP">ERR_FAIL_OPEN_APP</a>
<dd><a href="#const:ERR_FAIL_OPEN_BINARY">ERR_FAIL_OPEN_BINARY</a>
<dd><a href="#const:ERR_FAIL_OPEN_CAT">ERR_FAIL_OPEN_CAT</a>
<dd><a href="#const:ERR_FAIL_OPEN_CATAPP">ERR_FAIL_OPEN_CATAPP</a>
<dd><a href="#const:ERR_FAIL_OPEN_FONT">ERR_FAIL_OPEN_FONT</a>
<dd><a href="#const:ERR_FAIL_OPEN_TEXT">ERR_FAIL_OPEN_TEXT</a>
<dd><a href="#const:ERR_FAIL_READ_APP">ERR_FAIL_READ_APP</a>
<dd><a href="#const:ERR_FAIL_READ_BINARY">ERR_FAIL_READ_BINARY</a>
<dd><a href="#const:ERR_FAIL_READ_CAT">ERR_FAIL_READ_CAT</a>
<dd><a href="#const:ERR_FAIL_READ_CATAPP">ERR_FAIL_READ_CATAPP</a>
<dd><a href="#const:ERR_FAIL_READ_FONT">ERR_FAIL_READ_FONT</a>
<dd><a href="#const:ERR_FAIL_READ_TEXT">ERR_FAIL_READ_TEXT</a>
<dd><a href="#const:ERR_FAIL_SEEK_APP">ERR_FAIL_SEEK_APP</a>
<dd><a href="#const:ERR_FAIL_SEEK_BINARY">ERR_FAIL_SEEK_BINARY</a>
<dd><a href="#const:ERR_FAIL_SEEK_CAT">ERR_FAIL_SEEK_CAT</a>
<dd><a href="#const:ERR_FAIL_SEEK_CATAPP">ERR_FAIL_SEEK_CATAPP</a>
<dd><a href="#const:ERR_FAIL_SEEK_FONT">ERR_FAIL_SEEK_FONT</a>
<dd><a href="#const:ERR_FAIL_SEEK_TEXT">ERR_FAIL_SEEK_TEXT</a>
<dd><a href="#const:ERR_MEMORY_EXHAUSTED">ERR_MEMORY_EXHAUSTED</a>
<dd><a href="#const:ERR_NO_APPSUB">ERR_NO_APPSUB</a>
<dd><a href="#const:ERR_NO_CANDIDATES">ERR_NO_CANDIDATES</a>
<dd><a href="#const:ERR_NO_CUR_APPSUB">ERR_NO_CUR_APPSUB</a>
<dd><a href="#const:ERR_NO_CUR_BINARY">ERR_NO_CUR_BINARY</a>
<dd><a href="#const:ERR_NO_CUR_FONT">ERR_NO_CUR_FONT</a>
<dd><a href="#const:ERR_NO_CUR_SUB">ERR_NO_CUR_SUB</a>
<dd><a href="#const:ERR_NO_FONT">ERR_NO_FONT</a>
<dd><a href="#const:ERR_NO_PREV_SEARCH">ERR_NO_PREV_SEARCH</a>
<dd><a href="#const:ERR_NO_PREV_SEEK">ERR_NO_PREV_SEEK</a>
<dd><a href="#const:ERR_NO_SUB">ERR_NO_SUB</a>
<dd><a href="#const:ERR_NO_SUCH_APPSUB">ERR_NO_SUCH_APPSUB</a>
<dd><a href="#const:ERR_NO_SUCH_BINARY">ERR_NO_SUCH_BINARY</a>
<dd><a href="#const:ERR_NO_SUCH_BOOK">ERR_NO_SUCH_BOOK</a>
<dd><a href="#const:ERR_NO_SUCH_CHAR_BMP">ERR_NO_SUCH_CHAR_BMP</a>
<dd><a href="#const:ERR_NO_SUCH_CHAR_TEXT">ERR_NO_SUCH_CHAR_TEXT</a>
<dd><a href="#const:ERR_NO_SUCH_ENTRY_ID">ERR_NO_SUCH_ENTRY_ID</a>
<dd><a href="#const:ERR_NO_SUCH_FONT">ERR_NO_SUCH_FONT</a>
<dd><a href="#const:ERR_NO_SUCH_HOOK">ERR_NO_SUCH_HOOK</a>
<dd><a href="#const:ERR_NO_SUCH_MULTI_ID">ERR_NO_SUCH_MULTI_ID</a>
<dd><a href="#const:ERR_NO_SUCH_SEARCH">ERR_NO_SUCH_SEARCH</a>
<dd><a href="#const:ERR_NO_SUCH_SUB">ERR_NO_SUCH_SUB</a>
<dd><a href="#const:ERR_NO_TEXT">ERR_NO_TEXT</a>
<dd><a href="#const:ERR_NO_WORD">ERR_NO_WORD</a>
<dd><a href="#const:ERR_TOO_LONG_FILE_NAME">ERR_TOO_LONG_FILE_NAME</a>
<dd><a href="#const:ERR_TOO_LONG_WORD">ERR_TOO_LONG_WORD</a>
<dd><a href="#const:ERR_TOO_MANY_WORDS">ERR_TOO_MANY_WORDS</a>
<dd><a href="#const:ERR_UNBOUND_APP">ERR_UNBOUND_APP</a>
<dd><a href="#const:ERR_UNBOUND_BOOK">ERR_UNBOUND_BOOK</a>
<dd><a href="#const:ERR_UNBOUND_BOOKLIST">ERR_UNBOUND_BOOKLIST</a>
<dd><a href="#const:ERR_UNEXP_APP">ERR_UNEXP_APP</a>
<dd><a href="#const:ERR_UNEXP_BINARY">ERR_UNEXP_BINARY</a>
<dd><a href="#const:ERR_UNEXP_CAT">ERR_UNEXP_CAT</a>
<dd><a href="#const:ERR_UNEXP_CATAPP">ERR_UNEXP_CATAPP</a>
<dd><a href="#const:ERR_UNEXP_FONT">ERR_UNEXP_FONT</a>
<dd><a href="#const:ERR_UNEXP_TEXT">ERR_UNEXP_TEXT</a>
<dt>H
<dd><a href="#const:HEIGHT_NARROW_FONT_16">HEIGHT_NARROW_FONT_16</a>
<dd><a href="#const:HEIGHT_NARROW_FONT_24">HEIGHT_NARROW_FONT_24</a>
<dd><a href="#const:HEIGHT_NARROW_FONT_30">HEIGHT_NARROW_FONT_30</a>
<dd><a href="#const:HEIGHT_NARROW_FONT_48">HEIGHT_NARROW_FONT_48</a>
<dd><a href="#const:HEIGHT_WIDE_FONT_16">HEIGHT_WIDE_FONT_16</a>
<dd><a href="#const:HEIGHT_WIDE_FONT_24">HEIGHT_WIDE_FONT_24</a>
<dd><a href="#const:HEIGHT_WIDE_FONT_30">HEIGHT_WIDE_FONT_30</a>
<dd><a href="#const:HEIGHT_WIDE_FONT_48">HEIGHT_WIDE_FONT_48</a>
<dd><a href="#const:HOOK_BEGIN_CANDIDATE">HOOK_BEGIN_CANDIDATE</a>
<dd><a href="#const:HOOK_BEGIN_CLICKABLE_AREA">HOOK_BEGIN_CLICKABLE_AREA</a>
<dd><a href="#const:HOOK_BEGIN_COLOR_BMP">HOOK_BEGIN_COLOR_BMP</a>
<dd><a href="#const:HOOK_BEGIN_COLOR_JPEG">HOOK_BEGIN_COLOR_JPEG</a>
<dd><a href="#const:HOOK_BEGIN_DECORATION">HOOK_BEGIN_DECORATION</a>
<dd><a href="#const:HOOK_BEGIN_EMPHASIS">HOOK_BEGIN_EMPHASIS</a>
<dd><a href="#const:HOOK_BEGIN_GRAY_GRAPHIC">HOOK_BEGIN_GRAY_GRAPHIC</a>
<dd><a href="#const:HOOK_BEGIN_IN_COLOR_BMP">HOOK_BEGIN_IN_COLOR_BMP</a>
<dd><a href="#const:HOOK_BEGIN_IN_COLOR_JPEG">HOOK_BEGIN_IN_COLOR_JPEG</a>
<dd><a href="#const:HOOK_BEGIN_KEYWORD">HOOK_BEGIN_KEYWORD</a>
<dd><a href="#const:HOOK_BEGIN_MONO_GRAPHIC">HOOK_BEGIN_MONO_GRAPHIC</a>
<dd><a href="#const:HOOK_BEGIN_MPEG">HOOK_BEGIN_MPEG</a>
<dd><a href="#const:HOOK_BEGIN_NARROW">HOOK_BEGIN_NARROW</a>
<dd><a href="#const:HOOK_BEGIN_NO_NEWLINE">HOOK_BEGIN_NO_NEWLINE</a>
<dd><a href="#const:HOOK_BEGIN_REFERENCE">HOOK_BEGIN_REFERENCE</a>
<dd><a href="#const:HOOK_BEGIN_SUBSCRIPT">HOOK_BEGIN_SUBSCRIPT</a>
<dd><a href="#const:HOOK_BEGIN_SUPERSCRIPT">HOOK_BEGIN_SUPERSCRIPT</a>
<dd><a href="#const:HOOK_BEGIN_WAVE">HOOK_BEGIN_WAVE</a>
<dd><a href="#const:HOOK_END_CANDIDATE_GROUP">HOOK_END_CANDIDATE_GROUP</a>
<dd><a href="#const:HOOK_END_CANDIDATE_LEAF">HOOK_END_CANDIDATE_LEAF</a>
<dd><a href="#const:HOOK_END_CLICKABLE_AREA">HOOK_END_CLICKABLE_AREA</a>
<dd><a href="#const:HOOK_END_COLOR_GRAPHIC">HOOK_END_COLOR_GRAPHIC</a>
<dd><a href="#const:HOOK_END_DECORATION">HOOK_END_DECORATION</a>
<dd><a href="#const:HOOK_END_EMPHASIS">HOOK_END_EMPHASIS</a>
<dd><a href="#const:HOOK_END_GRAY_GRAPHIC">HOOK_END_GRAY_GRAPHIC</a>
<dd><a href="#const:HOOK_END_IN_COLOR_GRAPHIC">HOOK_END_IN_COLOR_GRAPHIC</a>
<dd><a href="#const:HOOK_END_KEYWORD">HOOK_END_KEYWORD</a>
<dd><a href="#const:HOOK_END_MONO_GRAPHIC">HOOK_END_MONO_GRAPHIC</a>
<dd><a href="#const:HOOK_END_MPEG">HOOK_END_MPEG</a>
<dd><a href="#const:HOOK_END_NARROW">HOOK_END_NARROW</a>
<dd><a href="#const:HOOK_END_NO_NEWLINE">HOOK_END_NO_NEWLINE</a>
<dd><a href="#const:HOOK_END_REFERENCE">HOOK_END_REFERENCE</a>
<dd><a href="#const:HOOK_END_SUBSCRIPT">HOOK_END_SUBSCRIPT</a>
<dd><a href="#const:HOOK_END_SUPERSCRIPT">HOOK_END_SUPERSCRIPT</a>
<dd><a href="#const:HOOK_END_WAVE">HOOK_END_WAVE</a>
<dd><a href="#const:HOOK_GB2312">HOOK_GB2312</a>
<dd><a href="#const:HOOK_INITIALIZE">HOOK_INITIALIZE</a>
<dd><a href="#const:HOOK_ISO8859_1">HOOK_ISO8859_1</a>
<dd><a href="#const:HOOK_NARROW_FONT">HOOK_NARROW_FONT</a>
<dd><a href="#const:HOOK_NARROW_JISX0208">HOOK_NARROW_JISX0208</a>
<dd><a href="#const:HOOK_NEWLINE">HOOK_NEWLINE</a>
<dd><a href="#const:HOOK_NULL">HOOK_NULL</a>
<dd><a href="#const:HOOK_SET_INDENT">HOOK_SET_INDENT</a>
<dd><a href="#const:HOOK_WIDE_FONT">HOOK_WIDE_FONT</a>
<dd><a href="#const:HOOK_WIDE_JISX0208">HOOK_WIDE_JISX0208</a>
<dt>S
<dd><a href="#const:SIZE_NARROW_FONT_16">SIZE_NARROW_FONT_16</a>
<dd><a href="#const:SIZE_NARROW_FONT_16_BMP">SIZE_NARROW_FONT_16_BMP</a>
<dd><a href="#const:SIZE_NARROW_FONT_16_GIF">SIZE_NARROW_FONT_16_GIF</a>
<dd><a href="#const:SIZE_NARROW_FONT_16_PNG">SIZE_NARROW_FONT_16_PNG</a>
<dd><a href="#const:SIZE_NARROW_FONT_16_XBM">SIZE_NARROW_FONT_16_XBM</a>
<dd><a href="#const:SIZE_NARROW_FONT_16_XPM">SIZE_NARROW_FONT_16_XPM</a>
<dd><a href="#const:SIZE_NARROW_FONT_24">SIZE_NARROW_FONT_24</a>
<dd><a href="#const:SIZE_NARROW_FONT_24_BMP">SIZE_NARROW_FONT_24_BMP</a>
<dd><a href="#const:SIZE_NARROW_FONT_24_GIF">SIZE_NARROW_FONT_24_GIF</a>
<dd><a href="#const:SIZE_NARROW_FONT_24_PNG">SIZE_NARROW_FONT_24_PNG</a>
<dd><a href="#const:SIZE_NARROW_FONT_24_XBM">SIZE_NARROW_FONT_24_XBM</a>
<dd><a href="#const:SIZE_NARROW_FONT_24_XPM">SIZE_NARROW_FONT_24_XPM</a>
<dd><a href="#const:SIZE_NARROW_FONT_30">SIZE_NARROW_FONT_30</a>
<dd><a href="#const:SIZE_NARROW_FONT_30_BMP">SIZE_NARROW_FONT_30_BMP</a>
<dd><a href="#const:SIZE_NARROW_FONT_30_GIF">SIZE_NARROW_FONT_30_GIF</a>
<dd><a href="#const:SIZE_NARROW_FONT_30_PNG">SIZE_NARROW_FONT_30_PNG</a>
<dd><a href="#const:SIZE_NARROW_FONT_30_XBM">SIZE_NARROW_FONT_30_XBM</a>
<dd><a href="#const:SIZE_NARROW_FONT_30_XPM">SIZE_NARROW_FONT_30_XPM</a>
<dd><a href="#const:SIZE_NARROW_FONT_48">SIZE_NARROW_FONT_48</a>
<dd><a href="#const:SIZE_NARROW_FONT_48_BMP">SIZE_NARROW_FONT_48_BMP</a>
<dd><a href="#const:SIZE_NARROW_FONT_48_GIF">SIZE_NARROW_FONT_48_GIF</a>
<dd><a href="#const:SIZE_NARROW_FONT_48_PNG">SIZE_NARROW_FONT_48_PNG</a>
<dd><a href="#const:SIZE_NARROW_FONT_48_XBM">SIZE_NARROW_FONT_48_XBM</a>
<dd><a href="#const:SIZE_NARROW_FONT_48_XPM">SIZE_NARROW_FONT_48_XPM</a>
<dd><a href="#const:SIZE_WIDE_FONT_16">SIZE_WIDE_FONT_16</a>
<dd><a href="#const:SIZE_WIDE_FONT_16_BMP">SIZE_WIDE_FONT_16_BMP</a>
<dd><a href="#const:SIZE_WIDE_FONT_16_GIF">SIZE_WIDE_FONT_16_GIF</a>
<dd><a href="#const:SIZE_WIDE_FONT_16_PNG">SIZE_WIDE_FONT_16_PNG</a>
<dd><a href="#const:SIZE_WIDE_FONT_16_XBM">SIZE_WIDE_FONT_16_XBM</a>
<dd><a href="#const:SIZE_WIDE_FONT_16_XPM">SIZE_WIDE_FONT_16_XPM</a>
<dd><a href="#const:SIZE_WIDE_FONT_24">SIZE_WIDE_FONT_24</a>
<dd><a href="#const:SIZE_WIDE_FONT_24_BMP">SIZE_WIDE_FONT_24_BMP</a>
<dd><a href="#const:SIZE_WIDE_FONT_24_GIF">SIZE_WIDE_FONT_24_GIF</a>
<dd><a href="#const:SIZE_WIDE_FONT_24_PNG">SIZE_WIDE_FONT_24_PNG</a>
<dd><a href="#const:SIZE_WIDE_FONT_24_XBM">SIZE_WIDE_FONT_24_XBM</a>
<dd><a href="#const:SIZE_WIDE_FONT_24_XPM">SIZE_WIDE_FONT_24_XPM</a>
<dd><a href="#const:SIZE_WIDE_FONT_30">SIZE_WIDE_FONT_30</a>
<dd><a href="#const:SIZE_WIDE_FONT_30_BMP">SIZE_WIDE_FONT_30_BMP</a>
<dd><a href="#const:SIZE_WIDE_FONT_30_GIF">SIZE_WIDE_FONT_30_GIF</a>
<dd><a href="#const:SIZE_WIDE_FONT_30_PNG">SIZE_WIDE_FONT_30_PNG</a>
<dd><a href="#const:SIZE_WIDE_FONT_30_XBM">SIZE_WIDE_FONT_30_XBM</a>
<dd><a href="#const:SIZE_WIDE_FONT_30_XPM">SIZE_WIDE_FONT_30_XPM</a>
<dd><a href="#const:SIZE_WIDE_FONT_48">SIZE_WIDE_FONT_48</a>
<dd><a href="#const:SIZE_WIDE_FONT_48_BMP">SIZE_WIDE_FONT_48_BMP</a>
<dd><a href="#const:SIZE_WIDE_FONT_48_GIF">SIZE_WIDE_FONT_48_GIF</a>
<dd><a href="#const:SIZE_WIDE_FONT_48_PNG">SIZE_WIDE_FONT_48_PNG</a>
<dd><a href="#const:SIZE_WIDE_FONT_48_XBM">SIZE_WIDE_FONT_48_XBM</a>
<dd><a href="#const:SIZE_WIDE_FONT_48_XPM">SIZE_WIDE_FONT_48_XPM</a>
<dd><a href="#const:SUCCESS">SUCCESS</a>
<dt>W
<dd><a href="#const:WIDTH_NARROW_FONT_16">WIDTH_NARROW_FONT_16</a>
<dd><a href="#const:WIDTH_NARROW_FONT_24">WIDTH_NARROW_FONT_24</a>
<dd><a href="#const:WIDTH_NARROW_FONT_30">WIDTH_NARROW_FONT_30</a>
<dd><a href="#const:WIDTH_NARROW_FONT_48">WIDTH_NARROW_FONT_48</a>
<dd><a href="#const:WIDTH_WIDE_FONT_16">WIDTH_WIDE_FONT_16</a>
<dd><a href="#const:WIDTH_WIDE_FONT_24">WIDTH_WIDE_FONT_24</a>
<dd><a href="#const:WIDTH_WIDE_FONT_30">WIDTH_WIDE_FONT_30</a>
<dd><a href="#const:WIDTH_WIDE_FONT_48">WIDTH_WIDE_FONT_48</a>
</dl>

View file

@ -0,0 +1,166 @@
<dl>
<dt>A
<dd><a href="#func:appendix_path">appendix_path</a>
<dd><a href="#func:appendix_subbook">appendix_subbook</a>
<dd><a href="#func:appendix_subbook_directory">appendix_subbook_directory</a>
<dd><a href="#func:appendix_subbook_directory2">appendix_subbook_directory2</a>
<dd><a href="#func:appendix_subbook_list">appendix_subbook_list</a>
<dt>B
<dd><a href="#func:backward_narrow_alt_character">backward_narrow_alt_character</a>
<dd><a href="#func:backward_narrow_font_character">backward_narrow_font_character</a>
<dd><a href="#func:backward_text">backward_text</a>
<dd><a href="#func:backward_wide_alt_character">backward_wide_alt_character</a>
<dd><a href="#func:backward_wide_font_character">backward_wide_font_character</a>
<dd><a href="#func:bind">bind</a>
<dd><a href="#func:bind_appendix">bind_appendix</a>
<dd><a href="#func:bind_booklist">bind_booklist</a>
<dd><a href="#func:bitmap_to_bmp">bitmap_to_bmp</a>
<dd><a href="#func:bitmap_to_gif">bitmap_to_gif</a>
<dd><a href="#func:bitmap_to_png">bitmap_to_png</a>
<dd><a href="#func:bitmap_to_xbm">bitmap_to_xbm</a>
<dd><a href="#func:bitmap_to_xpm">bitmap_to_xpm</a>
<dd><a href="#func:booklist_book_count">booklist_book_count</a>
<dd><a href="#func:booklist_book_name">booklist_book_name</a>
<dd><a href="#func:booklist_book_title">booklist_book_title</a>
<dt>C
<dd><a href="#func:character_code">character_code</a>
<dd><a href="#func:compose_movie_file_name">compose_movie_file_name</a>
<dd><a href="#func:compose_movie_path_name">compose_movie_path_name</a>
<dd><a href="#func:copyright">copyright</a>
<dd><a href="#func:current_candidate">current_candidate</a>
<dt>D
<dd><a href="#func:decompose_movie_file_name">decompose_movie_file_name</a>
<dd><a href="#func:disc_type">disc_type</a>
<dt>E
<dd><a href="#func:error_message">error_message</a>
<dd><a href="#func:error_string">error_string</a>
<dt>F
<dd><a href="#func:finalize_appendix">finalize_appendix</a>
<dd><a href="#func:finalize_book">finalize_book</a>
<dd><a href="#func:finalize_booklist">finalize_booklist</a>
<dd><a href="#func:finalize_hookset">finalize_hookset</a>
<dd><a href="#func:finalize_library">finalize_library</a>
<dd><a href="#func:font">font</a>
<dd><a href="#func:font_height">font_height</a>
<dd><a href="#func:font_height2">font_height2</a>
<dd><a href="#func:font_list">font_list</a>
<dd><a href="#func:forward_heading">forward_heading</a>
<dd><a href="#func:forward_narrow_font_character">forward_narrow_font_character</a>
<dd><a href="#func:forward_text">forward_text</a>
<dd><a href="#func:forward_wide_font_character">forward_wide_font_character</a>
<dt>H
<dd><a href="#func:have_copyright">have_copyright</a>
<dd><a href="#func:have_endword_search">have_endword_search</a>
<dd><a href="#func:have_exactword_search">have_exactword_search</a>
<dd><a href="#func:have_font">have_font</a>
<dd><a href="#func:have_keyword_search">have_keyword_search</a>
<dd><a href="#func:have_menu">have_menu</a>
<dd><a href="#func:have_multi_search">have_multi_search</a>
<dd><a href="#func:have_narrow_alt">have_narrow_alt</a>
<dd><a href="#func:have_narrow_font">have_narrow_font</a>
<dd><a href="#func:have_stop_code">have_stop_code</a>
<dd><a href="#func:have_text">have_text</a>
<dd><a href="#func:have_wide_alt">have_wide_alt</a>
<dd><a href="#func:have_wide_font">have_wide_font</a>
<dd><a href="#func:have_word_search">have_word_search</a>
<dd><a href="#func:hit_list">hit_list</a>
<dd><a href="#func:hook_empty">hook_empty</a>
<dd><a href="#func:hook_euc_to_ascii">hook_euc_to_ascii</a>
<dd><a href="#func:hook_narrow_character_text">hook_narrow_character_text</a>
<dd><a href="#func:hook_newline">hook_newline</a>
<dd><a href="#func:hook_wide_character_text">hook_wide_character_text</a>
<dt>I
<dd><a href="#func:initialize_appendix">initialize_appendix</a>
<dd><a href="#func:initialize_book">initialize_book</a>
<dd><a href="#func:initialize_booklist">initialize_booklist</a>
<dd><a href="#func:initialize_hookset">initialize_hookset</a>
<dd><a href="#func:initialize_library">initialize_library</a>
<dd><a href="#func:is_appendix_bound">is_appendix_bound</a>
<dd><a href="#func:is_bound">is_bound</a>
<dd><a href="#func:is_text_stopped">is_text_stopped</a>
<dt>L
<dd><a href="#func:load_all_appendix_subbooks">load_all_appendix_subbooks</a>
<dd><a href="#func:load_all_subbooks">load_all_subbooks</a>
<dt>M
<dd><a href="#func:menu">menu</a>
<dd><a href="#func:multi_entry_candidates">multi_entry_candidates</a>
<dd><a href="#func:multi_entry_count">multi_entry_count</a>
<dd><a href="#func:multi_entry_have_candidates">multi_entry_have_candidates</a>
<dd><a href="#func:multi_entry_label">multi_entry_label</a>
<dd><a href="#func:multi_search_list">multi_search_list</a>
<dd><a href="#func:multi_title">multi_title</a>
<dt>N
<dd><a href="#func:narrow_alt_character_text">narrow_alt_character_text</a>
<dd><a href="#func:narrow_alt_end">narrow_alt_end</a>
<dd><a href="#func:narrow_alt_start">narrow_alt_start</a>
<dd><a href="#func:narrow_font_bmp_size">narrow_font_bmp_size</a>
<dd><a href="#func:narrow_font_character_bitmap">narrow_font_character_bitmap</a>
<dd><a href="#func:narrow_font_end">narrow_font_end</a>
<dd><a href="#func:narrow_font_gif_size">narrow_font_gif_size</a>
<dd><a href="#func:narrow_font_png_size">narrow_font_png_size</a>
<dd><a href="#func:narrow_font_size">narrow_font_size</a>
<dd><a href="#func:narrow_font_size2">narrow_font_size2</a>
<dd><a href="#func:narrow_font_start">narrow_font_start</a>
<dd><a href="#func:narrow_font_width">narrow_font_width</a>
<dd><a href="#func:narrow_font_width2">narrow_font_width2</a>
<dd><a href="#func:narrow_font_xbm_size">narrow_font_xbm_size</a>
<dd><a href="#func:narrow_font_xpm_size">narrow_font_xpm_size</a>
<dt>P
<dd><a href="#func:path">path</a>
<dt>R
<dd><a href="#func:read_binary">read_binary</a>
<dd><a href="#func:read_heading">read_heading</a>
<dd><a href="#func:read_rawtext">read_rawtext</a>
<dd><a href="#func:read_text">read_text</a>
<dt>S
<dd><a href="#func:search_cross">search_cross</a>
<dd><a href="#func:search_endword">search_endword</a>
<dd><a href="#func:search_exactword">search_exactword</a>
<dd><a href="#func:search_keyword">search_keyword</a>
<dd><a href="#func:search_multi">search_multi</a>
<dd><a href="#func:search_word">search_word</a>
<dd><a href="#func:seek_text">seek_text</a>
<dd><a href="#func:set_appendix_subbook">set_appendix_subbook</a>
<dd><a href="#func:set_binary_color_graphic">set_binary_color_graphic</a>
<dd><a href="#func:set_binary_mono_graphic">set_binary_mono_graphic</a>
<dd><a href="#func:set_binary_mpeg">set_binary_mpeg</a>
<dd><a href="#func:set_binary_wave">set_binary_wave</a>
<dd><a href="#func:set_font">set_font</a>
<dd><a href="#func:set_hook">set_hook</a>
<dd><a href="#func:set_hooks">set_hooks</a>
<dd><a href="#func:set_subbook">set_subbook</a>
<dd><a href="#func:stop_code">stop_code</a>
<dd><a href="#func:subbook">subbook</a>
<dd><a href="#func:subbook_directory">subbook_directory</a>
<dd><a href="#func:subbook_directory2">subbook_directory2</a>
<dd><a href="#func:subbook_list">subbook_list</a>
<dd><a href="#func:subbook_title">subbook_title</a>
<dd><a href="#func:subbook_title2">subbook_title2</a>
<dt>T
<dd><a href="#func:tell_text">tell_text</a>
<dd><a href="#func:text">text</a>
<dt>U
<dd><a href="#func:unset_appendix_subbook">unset_appendix_subbook</a>
<dd><a href="#func:unset_font">unset_font</a>
<dd><a href="#func:unset_subbook">unset_subbook</a>
<dt>W
<dd><a href="#func:wide_alt_character_text">wide_alt_character_text</a>
<dd><a href="#func:wide_alt_end">wide_alt_end</a>
<dd><a href="#func:wide_alt_start">wide_alt_start</a>
<dd><a href="#func:wide_font_bmp_size">wide_font_bmp_size</a>
<dd><a href="#func:wide_font_character_bitmap">wide_font_character_bitmap</a>
<dd><a href="#func:wide_font_end">wide_font_end</a>
<dd><a href="#func:wide_font_gif_size">wide_font_gif_size</a>
<dd><a href="#func:wide_font_png_size">wide_font_png_size</a>
<dd><a href="#func:wide_font_size">wide_font_size</a>
<dd><a href="#func:wide_font_size2">wide_font_size2</a>
<dd><a href="#func:wide_font_start">wide_font_start</a>
<dd><a href="#func:wide_font_width">wide_font_width</a>
<dd><a href="#func:wide_font_width2">wide_font_width2</a>
<dd><a href="#func:wide_font_xbm_size">wide_font_xbm_size</a>
<dd><a href="#func:wide_font_xpm_size">wide_font_xpm_size</a>
<dd><a href="#func:write_text">write_text</a>
<dd><a href="#func:write_text_byte1">write_text_byte1</a>
<dd><a href="#func:write_text_byte2">write_text_byte2</a>
<dd><a href="#func:write_text_string">write_text_string</a>
</dl>

View file

@ -0,0 +1,25 @@
<dl>
<dt>A
<dd><a href="#type:Appendix">Appendix</a>
<dt>B
<dd><a href="#type:Book">Book</a>
<dd><a href="#type:BookList">BookList</a>
<dt>D
<dd><a href="#type:Disc_Code">Disc_Code</a>
<dt>E
<dd><a href="#type:EB_Character_Code">EB_Character_Code</a>
<dd><a href="#type:Error_Code">Error_Code</a>
<dt>F
<dd><a href="#type:Font_Code">Font_Code</a>
<dt>H
<dd><a href="#type:Hit">Hit</a>
<dd><a href="#type:Hook">Hook</a>
<dd><a href="#type:Hook_Code">Hook_Code</a>
<dd><a href="#type:Hookset">Hookset</a>
<dt>M
<dd><a href="#type:Multi_Search_Code">Multi_Search_Code</a>
<dt>P
<dd><a href="#type:Position">Position</a>
<dt>S
<dd><a href="#type:Subbook_Code">Subbook_Code</a>
</dl>

View file

@ -0,0 +1,144 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2003-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* font &lt;appendix-path&gt; &lt;subbook-index&gt;
* 例:
* font /cdrom 0
* 説明:
* &lt;appendix-path&gt; で指定した appendix から特定の副本を選び、そ
* の副本が定義している半角外字の代替文字列をすべて表示します。
*
* その appendix が、半角外字の代替文字列を定義していないと、エ
* ラーになります。
*
* &lt;subbook-index&gt; には、操作対象の副本のインデックスを指定しま
* す。インデックスは、書籍の最初の副本から順に 0、1、2 ... に
* なります。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/appendix.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Appendix app;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
int subbook_count;
int subbook_index;
int alt_start;
char text[EB_MAX_ALTERNATION_TEXT_LENGTH + 1];
int i;
/* コマンド行引数をチェック。*/
if (argc != 3) {
fprintf(stderr, "Usage: %s appendix-path subbook-index\n",
argv[0]);
exit(1);
}
/* EB ライブラリと `app' を初期化。*/
eb_initialize_library();
eb_initialize_appendix(&amp;app);
/* appendix を `app' に結び付ける。*/
error_code = eb_bind_appendix(&amp;app, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the app, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_appendix_subbook_list(&amp;app, subbook_list,
&amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 副本のインデックスを取得。*/
subbook_index = atoi(argv[2]);
/*「現在の副本 (current subbook)」を設定。*/
if (eb_set_appendix_subbook(&amp;app, subbook_list[subbook_index])
&lt; 0) {
fprintf(stderr, "%s: failed to set the current subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 外字の開始位置を取得。*/
error_code = eb_narrow_alt_start(&amp;app, &amp;alt_start);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get font information, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
i = alt_start;
for (;;) {
/* 外字の代替文字列を取得。*/
error_code = eb_narrow_alt_character_text(&amp;app, i, text);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get font data, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 取得した代替文字列を出力。*/
printf("%04x: %s\n", i, text);
/* 外字の文字番号を一つ進める。*/
error_code = eb_forward_narrow_alt_character(&amp;app, 1, &amp;i);
if (error_code != EB_SUCCESS)
break;
}
/* appendix と EB ライブラリの利用を終了。*/
eb_finalize_appendix(&amp;app);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_appendix(&amp;app);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,115 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2003-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* booklist &lt;remote-access-ideintifier&gt;
* 例:
* booklist ebnet://localhost
* 説明:
* &lt;remote-access-ideintifier&gt; で指定した EBNET サーバに接続し
* て、サーバの提供する書籍、appendix の一覧を表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/booklist.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_BookList bl;
int book_count;
char *name, *title;
int i;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path remote-access-identifier\n",
argv[0]);
exit(1);
}
/* EB ライブラリと `bl' を初期化。*/
eb_initialize_library();
eb_initialize_booklist(&amp;bl);
/* EBNET サーバを `bl' に結び付ける。*/
error_code = eb_bind_booklist(&amp;bl, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the EBNET server, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* サーバ上の書籍、appendix の個数を取得。*/
error_code = eb_booklist_book_count(&amp;bl, &amp;book_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the number of books, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
for (i = 0; i &lt; book_count; i++) {
/* 書籍、appendix の名称を取得。*/
error_code = eb_booklist_book_name(&amp;bl, i, &amp;name);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get book name #%d, %s\n",
argv[0], i, eb_error_message(error_code));
goto die;
}
/* 書籍、appendix の題名を取得。*/
error_code = eb_booklist_book_name(&amp;bl, i, &amp;title);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get book title #%d, %s\n",
argv[0], i, eb_error_message(error_code));
goto die;
}
printf("%-20s %s\n", name, title);
}
/* `bl' と EB ライブラリの利用を終了。*/
eb_finalize_booklist(&amp;bl);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_booklist(&amp;bl);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,104 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* disctype &lt;book-path&gt;
* 例:
* disctype /cdrom
* 説明:
* &lt;book-path&gt; で指定された CD-ROM 書籍の種類が、EB か EPWING か
* を調べて表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Disc_Code disc_code;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path\n", argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
eb_initialize_book(&amp;book);
/* `book' を書籍に結び付ける。失敗したら終了。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 書籍の種類を調べて表示。*/
error_code = eb_disc_type(&amp;book, &amp;disc_code);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get disc type, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
if (disc_code == EB_DISC_EB) {
fputs("EB\n", stdout);
} else if (disc_code == EB_DISC_EPWING) {
fputs("EPWING\n", stdout);
} else {
fputs("unknown\n", stdout);
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,164 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2002-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* font &lt;book-path&gt; &lt;subbook-index&gt;
* 例:
* font /cdrom 0
* 説明:
* &lt;book-path&gt; で指定した CD-ROM 書籍から特定の副本を選び、その
* 副本が定義している半角外字 (高さ 16 ピクセル) をすべてアスキー
* アートで表示します。
*
* その副本が、高さ 16 ピクセルの半角外字を定義していないと、エ
* ラーになります。
*
* &lt;subbook-index&gt; には、検索対象の副本のインデックスを指定しま
* す。インデックスは、書籍の最初の副本から順に 0、1、2 ... に
* なります。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/font.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
int subbook_count;
int subbook_index;
int font_start;
unsigned char bitmap[EB_SIZE_NARROW_FONT_16];
int i, j;
/* コマンド行引数をチェック。*/
if (argc != 3) {
fprintf(stderr, "Usage: %s book-path subbook-index\n",
argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
eb_initialize_library();
eb_initialize_book(&amp;book);
/* 書籍を `book' に結び付ける。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_subbook_list(&amp;book, subbook_list, &amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 副本のインデックスを取得。*/
subbook_index = atoi(argv[2]);
/*「現在の副本 (current subbook)」を設定。*/
error_code = eb_set_subbook(&amp;book, subbook_list[subbook_index]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to set the current subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/*「現在の外字の大きさ」を設定。*/
if (eb_set_font(&amp;book, EB_FONT_16) &lt; 0) {
fprintf(stderr, "%s: failed to set the font size, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 外字の開始位置を取得。*/
error_code = eb_narrow_font_start(&amp;book, &amp;font_start);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get font information, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
i = font_start;
for (;;) {
/* 外字のビットマップデータを取得。*/
error_code = eb_narrow_font_character_bitmap(&amp;book, i,
(char *)bitmap);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get font data, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* ビットマップをアスキーアートにして出力。*/
printf("code point=%04x\n", i);
for (j = 0; j &lt; 16; j++) {
fputc((bitmap[j] &amp; 0x80) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x40) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x20) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x10) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x08) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x04) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x02) ? '*' : ' ', stdout);
fputc((bitmap[j] &amp; 0x01) ? '*' : ' ', stdout);
fputc('\n', stdout);
}
fputs("--------\n", stdout);
/* 外字の文字番号を一つ進める。*/
error_code = eb_forward_narrow_font_character(&amp;book, 1, &amp;i);
if (error_code != EB_SUCCESS)
break;
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,64 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 2001-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* initexit
* 例:
* initexit
* 説明:
* EB ライブラリの初期化、後始末をしてみます。
* プログラムの外側から見れば、これは何の意味もない動作です。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
/* EB ライブラリを初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
exit(1);
}
/* EB ライブラリの利用を終了。*/
eb_finalize_library();
exit(0);
}
</pre>
</blockquote>

View file

@ -0,0 +1,110 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* subbook &lt;book-path&gt;
* 例:
* subbook /cdrom
* 説明:
* &lt;boook-path&gt; で指定され CD-ROM 書籍に含まれているすべての副本の
* 題名を表示します。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
int subbook_count;
char title[EB_MAX_TITLE_LENGTH + 1];
int i;
/* コマンド行引数をチェック。*/
if (argc != 2) {
fprintf(stderr, "Usage: %s book-path\n", argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
error_code = eb_initialize_library();
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to initialize EB Library, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
eb_initialize_book(&amp;book);
/* 書籍を `book' に結び付ける。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_subbook_list(&amp;book, subbook_list, &amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 書籍に含まれている副本の題名を出力。*/
for (i = 0; i &lt; subbook_count; i++) {
error_code = eb_subbook_title2(&amp;book, subbook_list[i], title);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the title, %s\n",
argv[0], eb_error_message(error_code));
continue;
}
printf("%d: %s\n", i, title);
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,163 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* text &lt;book-path&gt; &lt;subbook-index&gt; &lt;number&gt;
* 例:
* text /cdrom 0 10
* 説明:
* &lt;book-path&gt; で指定した CD-ROM 書籍から特定の副本を選び、本文
* の先頭から &lt;number&gt; 個分の単語の説明を出力します。
*
* &lt;subbook-index&gt; には、検索対象の副本のインデックスを指定しま
* す。インデックスは、書籍の最初の副本から順に 0、1、2 ... に
* なります。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/text.h&gt;
#define MAXLEN_TEXT 1023
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
int subbook_count;
int subbook_index;
EB_Position text_position;
char text[MAXLEN_TEXT + 1];
ssize_t text_length;
int text_count;
int i;
/* コマンド行引数をチェック。*/
if (argc != 4) {
fprintf(stderr, "Usage: %s book-path subbook-index number\n",
argv[0]);
exit(1);
}
text_count = atoi(argv[3]);
/* EB ライブラリと `book' を初期化。*/
eb_initialize_library();
eb_initialize_book(&amp;book);
/* 書籍を `book' に結び付ける。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_subbook_list(&amp;book, subbook_list, &amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 副本のインデックスを取得。*/
subbook_index = atoi(argv[2]);
/*「現在の副本 (current subbook)」を設定。*/
error_code = eb_set_subbook(&amp;book, subbook_list[subbook_index]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to set the current subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* テキストの開始位置を取得。*/
error_code = eb_text(&amp;book, &amp;text_position);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get text information, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* テキストをシーク。*/
error_code = eb_seek_text(&amp;book, &amp;text_position);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to seek text, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
i = 0;
while (i &lt; text_count) {
/* テキストを取得。*/
error_code = eb_read_text(&amp;book, NULL, NULL, NULL, MAXLEN_TEXT,
text, &amp;text_length);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to read text, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
fputs(text, stdout);
if (!eb_is_text_stopped(&amp;book))
continue;
fputs("\n----------------------------------------\n", stdout);
/* 次の単語の説明へ移動。*/
error_code = eb_forward_text(&amp;book, NULL);
if (error_code == EB_ERR_END_OF_CONTENT)
fputs("\n[END]\n", stdout);
else if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to read text, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
i++;
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

View file

@ -0,0 +1,159 @@
<blockquote>
<pre>
/* -*- C -*-
* Copyright (c) 1999-2006 Motoyuki Kasahara
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* 使用方法:
* word &lt;book-path&gt; &lt;subbook-index&gt; &lt;word&gt;
* 例:
* word /cdrom 0 apple
* 説明:
* &lt;book-path&gt; で指定した CD-ROM 書籍の特定の副本の中から &lt;word&gt;
* という単語を完全一致検索で探し、ヒットしたすべてのエントリの
* 見出しを表示します。
*
* &lt;subbook-index&gt; には、検索対象の副本のインデックスを指定しま
* す。インデックスは、書籍の最初の副本から順に 0、1、2 ... に
* なります。
*/
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;eb/eb.h&gt;
#include &lt;eb/error.h&gt;
#include &lt;eb/text.h&gt;
#define MAX_HITS 50
#define MAXLEN_HEADING 127
int
main(int argc, char *argv[])
{
EB_Error_Code error_code;
EB_Book book;
EB_Subbook_Code subbook_list[EB_MAX_SUBBOOKS];
EB_Hit hits[MAX_HITS];
char heading[MAXLEN_HEADING + 1];
int subbook_count;
int subbook_index;
int hit_count;
ssize_t heading_length;
int i;
/* コマンド行引数をチェック。*/
if (argc != 4) {
fprintf(stderr, "Usage: %s book-path subbook-index word\n",
argv[0]);
exit(1);
}
/* EB ライブラリと `book' を初期化。*/
eb_initialize_library();
eb_initialize_book(&amp;book);
/* 書籍を `book' に結び付ける。*/
error_code = eb_bind(&amp;book, argv[1]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to bind the book, %s: %s\n",
argv[0], eb_error_message(error_code), argv[1]);
goto die;
}
/* 副本の一覧を取得。*/
error_code = eb_subbook_list(&amp;book, subbook_list, &amp;subbook_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get the subbbook list, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 副本のインデックスを取得。*/
subbook_index = atoi(argv[2]);
/*「現在の副本 (current subbook)」を設定。*/
error_code = eb_set_subbook(&amp;book, subbook_list[subbook_index]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to set the current subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 単語検索のリクエストを送出。*/
error_code = eb_search_exactword(&amp;book, argv[3]);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to search for the word, %s: %s\n",
argv[0], eb_error_message(error_code), argv[3]);
goto die;
}
for (;;) {
/* 残っているヒットエントリを取得。*/
error_code = eb_hit_list(&amp;book, MAX_HITS, hits, &amp;hit_count);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to get hit entries, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
if (hit_count == 0)
break;
for (i = 0; i &lt; hit_count; i++) {
/* 見出しの位置へ移動。*/
error_code = eb_seek_text(&amp;book, &amp;(hits[i].heading));
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to seek the subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
/* 見出しを取得して表示。*/
error_code = eb_read_heading(&amp;book, NULL, NULL, NULL,
MAXLEN_HEADING, heading, &amp;heading_length);
if (error_code != EB_SUCCESS) {
fprintf(stderr, "%s: failed to read the subbook, %s\n",
argv[0], eb_error_message(error_code));
goto die;
}
printf("%s\n", heading);
}
}
/* 書籍と EB ライブラリの利用を終了。*/
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(0);
/* エラー発生で終了するときの処理。*/
die:
eb_finalize_book(&amp;book);
eb_finalize_library();
exit(1);
}
</pre>
</blockquote>

127
lib/ebu/doc/eb-toc.html Normal file
View file

@ -0,0 +1,127 @@
<ul>
<li><a href="#introduction">はじめに</a>
<ul>
<li><a href="#electronic-book-and-epwing">電子ブックと EPWING について</a>
<li><a href="#construction-of-this-book">本書の構成について</a>
</ul>
<li><a href="#features">EB ライブラリの特徴</a>
<ul>
<li><a href="#header-files">ヘッダファイル</a>
<li><a href="#character-code">文字コード</a>
<li><a href="#compressed-book">圧縮された書籍について</a>
<li><a href="#remote-access">遠隔ホスト上の書籍について</a>
<li><a href="#system-requirements">システムの要件</a>
</ul>
<li><a href="#compilation">プログラムのコンパイル方法</a>
<ul>
<li><a href="#compilation-simple-way">てっとり早いコンパイル方法</a>
<li><a href="#compilation-with-autoconf">Autoconf を併用したコンパイル方法</a>
<li><a href="#debug-eb-library">EB ライブラリ本体のデバッグ</a>
</ul>
<li><a href="#init-and-exit">ライブラリの初期化と後始末</a>
<ul>
<li><a href="#init-and-exit-sample">サンプルプログラム</a>
<li><a href="#init-and-exit-functions">関数の詳細</a>
</ul>
<li><a href="#eb_book">CD-ROM 書籍と <code>EB_Book</code> オブジェクト</a>
<ul>
<li><a href="#eb_book-explanation"><code>EB_Book</code> オブジェクト</a>
<li><a href="#eb_bind-to-remote-host">遠隔ホストへの <code>eb_bind()</code></a>
<li><a href="#eb_book-sample">サンプルプログラム</a>
<li><a href="#eb_book-data-types">データ型の詳細</a>
<li><a href="#eb_book-functions">関数の詳細</a>
</ul>
<li><a href="#error-handling">エラー処理</a>
<ul>
<li><a href="#error-code-and-message">エラーコードとエラーメッセージ</a>
<li><a href="#tolerance-to-error">エラーに対する寛容さ</a>
<li><a href="#error-data-types">データ型の詳細</a>
<li><a href="#error-code-list">エラーコードの一覧</a>
<li><a href="#error-functions">関数の詳細</a>
</ul>
<li><a href="#subbook">副本</a>
<ul>
<li><a href="#subbook-code">副本コード</a>
<li><a href="#current-subbook">選択中の副本</a>
<li><a href="#subbook-sample">サンプルプログラム</a>
<li><a href="#subbook-data-types">データ型の詳細</a>
<li><a href="#subbook-functions">関数の詳細</a>
</ul>
<li><a href="#search">検索</a>
<ul>
<li><a href="#word-search">前方一致、後方一致、完全一致検索</a>
<li><a href="#keyword-search">条件検索</a>
<li><a href="#cross-search">クロス検索</a>
<li><a href="#multi-search">複合検索</a>
<li><a href="#eb_hit">一致エントリの情報</a>
<li><a href="#get-remained-entries">残っているエントリの取得</a>
<li><a href="#unify-duplicated-entries">重複エントリの削除</a>
<li><a href="#search-sample">サンプルプログラム</a>
<li><a href="#search-data-types">データ型の詳細</a>
<li><a href="#search-functions">関数の詳細</a>
</ul>
<li><a href="#text-data">テキストデータ</a>
<ul>
<li><a href="#seek-and-read-text-data">テキストデータのシークと読み込み</a>
<li><a href="#text-data-format">テキストデータの内部形式</a>
<li><a href="#hook">フック</a>
<li><a href="#hook-and-character-code">フックと文字コードの関係</a>
<li><a href="#cross-search-result">クロス検索の検索結果</a>
<li><a href="#copyright-notice">著作権表示</a>
<li><a href="#menu">メニュー</a>
<li><a href="#multi-candidates">複合検索の候補一覧</a>
<li><a href="#stop-code-issue">区切りコードの問題</a>
<li><a href="#text-data-sample">サンプルプログラム</a>
<li><a href="#text-data-types">データ型の詳細</a>
<li><a href="#hook-function-details">フック関数の詳細</a>
<li><a href="#hook-code-list">フックコードの一覧</a>
<li><a href="#hookset-access-functions">フックセット操作関数の詳細</a>
<li><a href="#builtin-hook-functions">組み込みフック関数の詳細</a>
<li><a href="#text-data-functions">テキストデータ操作関数の詳細</a>
</ul>
<li><a href="#local-character">外字</a>
<ul>
<li><a href="#narrow-and-wide-font">半角外字と全角外字</a>
<li><a href="#font-size-and-font-code">外字の大きさと外字コード</a>
<li><a href="#current-font-height">選択中の外字フォントの高さ</a>
<li><a href="#get-font">外字フォントの取り出し</a>
<li><a href="#convert-font">外字フォントの変換</a>
<li><a href="#local-character-in-text">テキスト中の外字</a>
<li><a href="#font-data-types">データ型の詳細</a>
<li><a href="#font-constants">定数の詳細</a>
<li><a href="#font-functions">関数の詳細</a>
<li><a href="#font-sample">サンプルプログラム</a>
</ul>
<li><a href="#binary-data">バイナリデータ</a>
<ul>
<li><a href="#monochrome-image">モノクロ図版</a>
<li><a href="#color-image">カラー図版</a>
<li><a href="#clickable-color-image">参照先付きカラー図版</a>
<li><a href="#wave-sound">WAVE (PCM) 音声</a>
<li><a href="#mpeg-movie">MPEG1 動画</a>
<li><a href="#binary-data-functions">関数の詳細</a>
</ul>
<li><a href="#appendix-data">appendix データ</a>
<ul>
<li><a href="#eb_appendix"><code>EB_Appendix</code> オブジェクト</a>
<li><a href="#appendix-subbook">副本</a>
<li><a href="#appendix-stop-code">本文の区切りコード</a>
<li><a href="#appendix-alternation-text">外字の代替文字列</a>
<li><a href="#appendix-data-types">データ型の詳細</a>
<li><a href="#appendix-functions">関数の詳細</a>
<li><a href="#appendix-sample">サンプルプログラム</a>
</ul>
<li><a href="#book-list-on-server">サーバ上の書籍一覧</a>
<ul>
<li><a href="#eb_booklist-object"><code>EB_BookList</code> オブジェクト</a>
<li><a href="#booklist-data">データ型の詳細</a>
<li><a href="#booklist-functions">関数の詳細</a>
<li><a href="#booklist-sample">サンプルプログラム</a>
</ul>
<li><a href="#indice">索引</a>
<ul>
<li><a href="#data-type-index">データ型の索引</a>
<li><a href="#function-index">関数の索引</a>
<li><a href="#const-index">定数の索引</a>
</ul>
</ul>

51
lib/ebu/doc/eb.css Normal file
View file

@ -0,0 +1,51 @@
body {
color: #000000;
background-color: #ffffff;
}
td {
border-style: solid;
border-width: 1px;
}
table {
border-style: solid;
border-width: 2px;
}
h2 {
color: #000000;
font-size: x-large;
padding: 3px;
}
h3 {
color: #ffffff;
background-color: #8787a7;
font-size: large;
padding: 5px;
border-style: solid;
border-width: 4px;
border-bottom-color: #3f3f5f;
border-right-color: #3f3f5f;
border-top-color: #dfdfff;
border-left-color: #dfdfff;
}
h4 {
color: #000000;
background-color: #dfdfff;
font-size: medium;
border-color: #3f3f5f;
border-left-style: solid;
border-bottom-style: solid;
border-left-width: 8px;
border-bottom-width: 2px;
padding: 6px;
}
blockquote.program {
border-style: dotted;
border-width: 1px;
padding-left: 8px;
}

165
lib/ebu/doc/eb.html Normal file
View file

@ -0,0 +1,165 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- #file "eb.html" -->
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="eb.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>EB ライブラリ</title>
</head>
<body>
<p>
[<a href="eb-01.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
<hr>
<h1><a name="toc">EB ライブラリ</a></h1>
<p>
この文書は、EB ライブラリバージョン
4.5-20200413
に対応しています。
</p>
<p>
目次:
</p>
<ul>
<li><a href="eb-01.html#introduction">はじめに</a>
<ul>
<li><a href="eb-01.html#electronic-book-and-epwing">電子ブックと EPWING について</a>
<li><a href="eb-01.html#construction-of-this-book">本書の構成について</a>
</ul>
<li><a href="eb-02.html#features">EB ライブラリの特徴</a>
<ul>
<li><a href="eb-02.html#header-files">ヘッダファイル</a>
<li><a href="eb-02.html#character-code">文字コード</a>
<li><a href="eb-02.html#compressed-book">圧縮された書籍について</a>
<li><a href="eb-02.html#remote-access">遠隔ホスト上の書籍について</a>
<li><a href="eb-02.html#system-requirements">システムの要件</a>
</ul>
<li><a href="eb-03.html#compilation">プログラムのコンパイル方法</a>
<ul>
<li><a href="eb-03.html#compilation-simple-way">てっとり早いコンパイル方法</a>
<li><a href="eb-03.html#compilation-with-autoconf">Autoconf を併用したコンパイル方法</a>
<li><a href="eb-03.html#debug-eb-library">EB ライブラリ本体のデバッグ</a>
</ul>
<li><a href="eb-04.html#init-and-exit">ライブラリの初期化と後始末</a>
<ul>
<li><a href="eb-04.html#init-and-exit-sample">サンプルプログラム</a>
<li><a href="eb-04.html#init-and-exit-functions">関数の詳細</a>
</ul>
<li><a href="eb-05.html#eb_book">CD-ROM 書籍と <code>EB_Book</code> オブジェクト</a>
<ul>
<li><a href="eb-05.html#eb_book-explanation"><code>EB_Book</code> オブジェクト</a>
<li><a href="eb-05.html#eb_bind-to-remote-host">遠隔ホストへの <code>eb_bind()</code></a>
<li><a href="eb-05.html#eb_book-sample">サンプルプログラム</a>
<li><a href="eb-05.html#eb_book-data-types">データ型の詳細</a>
<li><a href="eb-05.html#eb_book-functions">関数の詳細</a>
</ul>
<li><a href="eb-06.html#error-handling">エラー処理</a>
<ul>
<li><a href="eb-06.html#error-code-and-message">エラーコードとエラーメッセージ</a>
<li><a href="eb-06.html#tolerance-to-error">エラーに対する寛容さ</a>
<li><a href="eb-06.html#error-data-types">データ型の詳細</a>
<li><a href="eb-06.html#error-code-list">エラーコードの一覧</a>
<li><a href="eb-06.html#error-functions">関数の詳細</a>
</ul>
<li><a href="eb-07.html#subbook">副本</a>
<ul>
<li><a href="eb-07.html#subbook-code">副本コード</a>
<li><a href="eb-07.html#current-subbook">選択中の副本</a>
<li><a href="eb-07.html#subbook-sample">サンプルプログラム</a>
<li><a href="eb-07.html#subbook-data-types">データ型の詳細</a>
<li><a href="eb-07.html#subbook-functions">関数の詳細</a>
</ul>
<li><a href="eb-08.html#search">検索</a>
<ul>
<li><a href="eb-08.html#word-search">前方一致、後方一致、完全一致検索</a>
<li><a href="eb-08.html#keyword-search">条件検索</a>
<li><a href="eb-08.html#cross-search">クロス検索</a>
<li><a href="eb-08.html#multi-search">複合検索</a>
<li><a href="eb-08.html#eb_hit">一致エントリの情報</a>
<li><a href="eb-08.html#get-remained-entries">残っているエントリの取得</a>
<li><a href="eb-08.html#unify-duplicated-entries">重複エントリの削除</a>
<li><a href="eb-08.html#search-sample">サンプルプログラム</a>
<li><a href="eb-08.html#search-data-types">データ型の詳細</a>
<li><a href="eb-08.html#search-functions">関数の詳細</a>
</ul>
<li><a href="eb-09.html#text-data">テキストデータ</a>
<ul>
<li><a href="eb-09.html#seek-and-read-text-data">テキストデータのシークと読み込み</a>
<li><a href="eb-09.html#text-data-format">テキストデータの内部形式</a>
<li><a href="eb-09.html#hook">フック</a>
<li><a href="eb-09.html#hook-and-character-code">フックと文字コードの関係</a>
<li><a href="eb-09.html#cross-search-result">クロス検索の検索結果</a>
<li><a href="eb-09.html#copyright-notice">著作権表示</a>
<li><a href="eb-09.html#menu">メニュー</a>
<li><a href="eb-09.html#multi-candidates">複合検索の候補一覧</a>
<li><a href="eb-09.html#stop-code-issue">区切りコードの問題</a>
<li><a href="eb-09.html#text-data-sample">サンプルプログラム</a>
<li><a href="eb-09.html#text-data-types">データ型の詳細</a>
<li><a href="eb-09.html#hook-function-details">フック関数の詳細</a>
<li><a href="eb-09.html#hook-code-list">フックコードの一覧</a>
<li><a href="eb-09.html#hookset-access-functions">フックセット操作関数の詳細</a>
<li><a href="eb-09.html#builtin-hook-functions">組み込みフック関数の詳細</a>
<li><a href="eb-09.html#text-data-functions">テキストデータ操作関数の詳細</a>
</ul>
<li><a href="eb-10.html#local-character">外字</a>
<ul>
<li><a href="eb-10.html#narrow-and-wide-font">半角外字と全角外字</a>
<li><a href="eb-10.html#font-size-and-font-code">外字の大きさと外字コード</a>
<li><a href="eb-10.html#current-font-height">選択中の外字フォントの高さ</a>
<li><a href="eb-10.html#get-font">外字フォントの取り出し</a>
<li><a href="eb-10.html#convert-font">外字フォントの変換</a>
<li><a href="eb-10.html#local-character-in-text">テキスト中の外字</a>
<li><a href="eb-10.html#font-data-types">データ型の詳細</a>
<li><a href="eb-10.html#font-constants">定数の詳細</a>
<li><a href="eb-10.html#font-functions">関数の詳細</a>
<li><a href="eb-10.html#font-sample">サンプルプログラム</a>
</ul>
<li><a href="eb-11.html#binary-data">バイナリデータ</a>
<ul>
<li><a href="eb-11.html#monochrome-image">モノクロ図版</a>
<li><a href="eb-11.html#color-image">カラー図版</a>
<li><a href="eb-11.html#clickable-color-image">参照先付きカラー図版</a>
<li><a href="eb-11.html#wave-sound">WAVE (PCM) 音声</a>
<li><a href="eb-11.html#mpeg-movie">MPEG1 動画</a>
<li><a href="eb-11.html#binary-data-functions">関数の詳細</a>
</ul>
<li><a href="eb-12.html#appendix-data">appendix データ</a>
<ul>
<li><a href="eb-12.html#eb_appendix"><code>EB_Appendix</code> オブジェクト</a>
<li><a href="eb-12.html#appendix-subbook">副本</a>
<li><a href="eb-12.html#appendix-stop-code">本文の区切りコード</a>
<li><a href="eb-12.html#appendix-alternation-text">外字の代替文字列</a>
<li><a href="eb-12.html#appendix-data-types">データ型の詳細</a>
<li><a href="eb-12.html#appendix-functions">関数の詳細</a>
<li><a href="eb-12.html#appendix-sample">サンプルプログラム</a>
</ul>
<li><a href="eb-13.html#book-list-on-server">サーバ上の書籍一覧</a>
<ul>
<li><a href="eb-13.html#eb_booklist-object"><code>EB_BookList</code> オブジェクト</a>
<li><a href="eb-13.html#booklist-data">データ型の詳細</a>
<li><a href="eb-13.html#booklist-functions">関数の詳細</a>
<li><a href="eb-13.html#booklist-sample">サンプルプログラム</a>
</ul>
<li><a href="eb-14.html#indice">索引</a>
<ul>
<li><a href="eb-14.html#data-type-index">データ型の索引</a>
<li><a href="eb-14.html#function-index">関数の索引</a>
<li><a href="eb-14.html#const-index">定数の索引</a>
</ul>
</ul>
<p>
Copyright (c) 2001-2006 Motoyuki Kasahara
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="eb-01.html">次へ</a>] [<a href="eb.html#toc">目次</a>]
</p>
</body>
</html>

9431
lib/ebu/doc/eb.html.in Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<p>
[<a href="ebappendix.html">前へ</a>] [<a href="ebappendix-02.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
<hr>
<h2><a name="what-is-appendix">appendix (付録) とは</a></h2>
<p>
<dfn>appendix</dfn> (<dfn>付録</dfn>) とは CD-ROM 書籍の補助データのことです。
appendix は CD-ROM 書籍の出版社から提供されているものではなく、
EB ライブラリに固有のものです。
</p>
<p>
appendix は以下のデータを CD-ROM 書籍に対して提供します。
</p>
<dl>
<dt>本文の区切りコード</dt>
<dd>
あなたが EB ライブラリを使って CD-ROM 辞書の中のある単語を引く際、その
単語の説明が終了する箇所で、EB ライブラリが本文の出力を止めることを
あなたは期待するのではないでしょうか。
しかし、EB ライブラリはそのような動作を保証することができません。
なぜなら、CD-ROM 書籍の本文には、項目の終わりを示す印が存在しないから
です。
幸いにも、多くの CD-ROM 書籍には、項目の終わりを示す印の代替として
使える、<dfn>区切りコード</dfn> (<dfn>stop code</dfn>) というものを持って
います。
通常、EB ライブラリはこの区切りコードを自動的に推測するようになって
いるのですが、時々誤った区切りコードを導き出すことがあります。
appendix の区切りコードは、その書籍の正しい区切りコードを EB ライブラリ
に教えてやるために用います。
<dt>外字の代替文字列</dt>
<dd>
多くの CD-ROM 書籍は、外字 (独自に定義した文字) を持っており、本文中で
その外字を使っています。
CD-ROM 書籍では外字のビットマップフォントを用意しており、
クライアントアプリケーションが外字を出力するには、そのフォントを描画
しなくてはなりません。
appendix では、外字の <dfn>代替文字列</dfn> (<dfn>alternation text</dfn>)
を定義することができます。
アプリケーションは、ビットマップフォントを描画する代わりに、その
代替文字列を出力することにしても良いでしょう。
</dl>
<p>
appendix のレイアウトは CD-ROM 書籍のものとよく似ています。
トップディレクトリには <code>catalog</code> もしくは <code>catalogs</code>
ファイルが存在し、各副本のデータは対応するサブディレクトリに配置されて
います。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="ebappendix.html">前へ</a>] [<a href="ebappendix-02.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<p>
[<a href="ebappendix-01.html">前へ</a>] [<a href="ebappendix-03.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
<hr>
<h2><a name="what-is-ebappendix"><code>ebappendix</code> コマンドとは</a></h2>
<p>
appendix はバイナリ形式のデータファイルで構成されますので、手で直接
編集するのは容易ではありません。
そこで、EB ライブラリでは <code>ebappendix</code> コマンドを用意しています。
<code>ebappendix</code> コマンドは、テキスト形式で書かれたデータを読み込み、
バイナリ形式の appendix を生成します。
</p>
<p>
EB ライブラリの公式な FTP サイト
<a href="ftp://ftp.sra.co.jp/pub/misc/eb/appendix/">ftp://ftp.sra.co.jp/pub/misc/eb/appendix/</a>
には、既にいくつかの書籍用の appendix が置いてあります。
ここに載っていない CD-ROM 書籍用の appendix を用意したい場合は、
<code>ebappendix</code> コマンドを使いましょう。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="ebappendix-01.html">前へ</a>] [<a href="ebappendix-03.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
</body>
</html>

View file

@ -0,0 +1,406 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<p>
[<a href="ebappendix-02.html">前へ</a>] [<a href="ebappendix-04.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
<hr>
<h2><a name="write-appendix-source">appendix のソースデータの書き方</a></h2>
<p>
この章では、appendix のソースデータの書き方を説明します。
ここで、「ソースデータ」と言っているのは、<code>ebappendix</code> が読み込む
テキスト形式で書かれたデータのことです。
</p>
<p>
appendix を生成するためには、次に挙げるソースデータファイルが必要です。
これらのファイルをすべて、同じディレクトリ上に用意するようにします。
</p>
<dl>
<dt><code>catalog.app</code> または <code>catalogs.app</code></dt>
<dd>
appendix には必ず、<code>catalog</code> または <code>catalogs</code> という
名前のファイルが必要です。
<code>catalog.app</code>, <code>catalogs.app</code> はその生成元となる
ファイルです。
appendix に収録されている <dfn>副本 (subbook)</dfn>
(詳しくは
<a href="ebappendix-03.html#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照) の一覧を記します。
<dt><var>副本</var><code>.app</code></dt>
<dd>
appendix が収録している副本それぞれに対して、一つずつ用意する必要が
あります (<var>副本</var> の部分は、実際は個々の副本の名前になります)。
appendix のメインデータである、本文の区切りコードや外字の代替文字列は、
このファイルに記します。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-catalog.app"><code>catalog(s).app</code> とは</a></h3>
<p>
CD-ROM 書籍と同様に、appendix パッケージにも必ず <code>catalog</code>
もしくは <code>catalogs</code> という名前のファイルのどちらか一方が
必要です。
<code>catalog.app</code>, <code>catalogs.app</code> ファイルは、その
生成元となります。
</p>
<p>
<code>ebappendix</code> コマンドに appendix を生成させる際には、
<code>catalog.app</code><code>catalogs.app</code> のどちらかを必ず
用意しておく必要があります。
</p>
<p>
<code>ebappendix</code> の標準の動作では、<code>catalog.app</code> という
ファイル名にしておくと、生成するファイル名も <code>catalog</code>
なります。
また、appendix 全体のディレクトリ構造が、電子ブックに似た形式になります。
</p>
<p>
反対に、<code>catalogs.app</code> というファイル名にしておくと、生成する
ファイル名も <code>catalogs</code> になります。
また、appendix 全体のディレクトリ構造が、EPWING に似た形式になります。
</p>
<p>
ただし、EPWING の書籍に対して電子ブック形式の appendix を使用しても、
動作そのものには支障がありません。
逆も同様です。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="write-catalog.app"><code>catalog(s).app</code> の書き方</a></h3>
<p>
<code>catalog(s).app</code> には、書籍に収録されている副本のディレクトリ名を
1 行に 1 つずつ書き並べます。
副本のディレクトリ名は、<code>ebinfo</code> コマンドを使うと容易に分かります。
</p>
<p>
以下は、<code>ebinfo</code> の実行例です。
</p>
<blockquote>
<pre>
% ebinfo /mnt/cdrom
ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
文字コード: JIS X 0208
副本の数: 2
副本 1:
題名: 新英和辞典(第三版)
ディレクトリ: ejdict
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字: 0xa121 -- 0xa24e
全角フォントの文字: 0xa321 -- 0xa27e
副本 2:
題名: この書籍の使い方
ディレクトリ: howto
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字:
全角フォントの文字: 0xa321 -- 0xa27e
</pre>
</blockquote>
<p>
この辞書用の appendix を作成する場合、<code>catalog(s).app</code> には次の
ように記します。
</p>
<blockquote>
<pre>
ejdict
howto
</pre>
</blockquote>
<p>
(<code>ebinfo</code> コマンドに関しての詳細は、
<a href="ebinfo.html">ebinfo コマンドのマニュアル</a> を参照のこと。)
</p>
<p>
ディレクトリ名の大文字、小文字は、同じものとして扱われます。
また、空行およびおよび空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
必ずもとの書籍の副本すべてを、同じ順序で <code>catalog(s).app</code>
記すようにして下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-subbook.app"><var>副本</var><code>.app</code> とは</a></h3>
<p>
appendix が収録している副本それぞれに対して、ソースデータファイル
<var>副本</var><code>.app</code> を用意する必要があります。
<var>副本</var> の部分は、実際には個々の副本の使用する
ディレクトリ名になります。
</p>
<p>
たとえば、前節の例では、書籍が <code>ejdict</code><code>howto</code>
というディレクトリ名を持った副本を持っていました。
この場合、用意するファイルは <code>ejdict.app</code><code>howto.app</code>
になります。
</p>
<p>
<var>副本</var><code>.app</code> ファイルは appendix のメインデータである、
本文の区切りコードや外字の代替文字列を収録した <code>appendix</code>
<code>furoku</code> といったファイルの生成元になります。
(appendix を電子ブック形式で生成すると <code>appendix</code>、EPWING 形式
で生成すると <code>furoku</code> というファイル名になります。)
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a></h3>
<p>
各副本のソースデータを記したファイル「<var>副本</var><code>.app</code>
の中では、空行、および空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
他の行はすべて、<dfn>単独指示子 (single directive)</dfn>
<dfn>複合指示子 (group directive)</dfn> のいずれかでなくてはなりません。
単独指示子と複合指示子は、どのような順序で定義しても差し支えありません。
</p>
<p>
単独指示子とは、1 行で完結する指示子です。
単独指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
<var>指示子の名前</var> <var>指示子の値</var>
</pre>
</blockquote>
<p>
以下の例では、<code>stop-code</code> が指示子の名前、
<samp>0x1f09 0x0001</samp> がその値です。
</p>
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
<p>
指示子名の大文字と小文字は区別されますので、<samp>stop-code</samp>
<samp>Stop-Code</samp> と書くことはできません。
指示子の名前と値の区切りには、空白かタブを用います。
連続した空白とタブが、行頭および行末にあった場合、それらは無視されます。
</p>
<p>
複合指示子とは、記述が設定ファイル内の複数行に渡る指示子です。
複合指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
begin <var>複合指示子の名前</var>
<var>副指示子の名前</var> <var>副指示子の値</var>
:
: (繰り返し)
:
end
</pre>
</blockquote>
<p>
キーワード <code>begin</code> が、複合指示子の開始を表します。
<code>begin</code> は後ろに <var>複合指示子の名前</var> を引数として
取ります。
<code>begin</code><var>複合指示子の名前</var> は空白かタブで区切り、
両方とも同じ行の中に置きます。
キーワード <code>end</code> は、複合指示子の終了を表します。
<code>end</code> は、単独で 1 行にして置きます。
</p>
<p>
今のところ <var>副本</var><code>.app</code> で使用できる複合指示子の名前は、
<code>narrow</code><code>wide</code> の 2 つだけです。
それぞれの <dfn>副指示子</dfn> は、<code>begin</code><code>end</code>
の行の間に置きます。
副指示子に関する記述の一般的な規則は、単独指示子と変わりません
(たとえば、<var>副指示子の名前</var><var>副指示子の値</var> は空白か
タブで区切ることなど)。
</p>
<p>
以下は、 <code>narrow</code> 複合指示子の記述例です。
</p>
<blockquote>
<pre>
begin narrow
range-start 0xa121
range-end 0xa123
0xa121 [→参照]
0xa122 [→音声]
0xa123 [→図解]
end
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="single-directives"><var>副本</var><code>.app</code> の単独指示子</a></h3>
<p>
単独指示子には次のようなものがあります。
</p>
<dl>
<dt><code>character-code</code></dt>
<dd>
appendix の文字コードを指定します。
文字コードは必ず、CD-ROM 書籍に合わせるようにします。
CD-ROM 書籍の文字コードは、<code>ebinfo</code> コマンドの出力を見れば確認
できます。
CD-ROM 書籍が ISO 8859-1 で書かれている場合は、指示子の値として
<samp>ISO8859-1</samp> を指定します。
それ以外の場合は、<samp>JISX0208</samp> を指定して下さい。
<blockquote>
<pre>
character-code JISX0208
</pre>
</blockquote>
この指示子は、<var>副本</var><code>.app</code> ファイル内で必ず一回定義
されなければなりません。
定義しなかったり、二度以上定義するとエラーになります。
<dt><code>stop-code</code></dt>
<dd>
副本の本文の区切りコードを指定します。
指示子の値は、区切りコードの文字番号を 2 つ書き並べたものになります。
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁
で記します。
ただし、1つ目の文字番号は、<samp>0x1f09</samp><samp>0x1f41</samp>
なければなりません。
それ以外だとエラーになります。
<code>ebstopcode</code> コマンドを使うと、副本に適切な区切りコードを
特定することができます (詳しくは
<a href="ebstopcode.html">ebstopcode コマンドのマニュアル</a> を参照の
こと)。
この指示子は定義しなくても構いませんが、二度以上定義するとエラーになります。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="group-directives"><var>副本</var><code>.app</code> の複合指示子</a></h3>
<p>
<code>narrow</code> および <code>wide</code> 複合指示子は、それぞれ副本に
対する半角外字および全角外字に対する代替文字列を定義するために用います。
ただし、副本が外字を定義していても、代替文字列を利用する必要がなければ、
<code>narrow</code>, <code>wide</code> 複合指示子を記述する必要はありません。
</p>
<p>
<code>narrow</code><code>wide</code> 複合指示子内で定義できる副指示子は、
まったく同じです。
副指示子には次のようなものがあります。
</p>
<dl>
<dt><code>range-start</code></dt>
<dd>
外字の定義範囲を記します。
開始位置の文字番号を <code>range-start</code> で、終了位置の文字番号を
<code>range-end</code> で指定します。
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁で
記します。
以下は記述例です。
<blockquote>
<pre>
range-start 0xa121
range-end 0xa123
</pre>
</blockquote>
定義範囲は、<code>ebinfo</code> コマンドの出力結果の
「半角フォントの文字 (narrow font characters)」
「全角フォントの文字 (wide font characters)」
で記された範囲と一致させるようにして下さい。
<code>narrow</code> および <code>wide</code> 複合指示子内では、
必ず一回ずつ <code>range-start</code> および <code>range-end</code>
定義しなければなりません。
定義しなかったり、二度以上定義したりするとエラーになります。
<dt><code>0x<var>hhhh</var></code></dt>
<dd>
<var>hhhh</var> は、4 桁 の 16進数です。
文字番号 <code>0x</code><var>hhhh</var> の全角外字ないし半角外字に対して、
代替文字列を定義します。
<blockquote>
<pre>
0xa121 [名]
</pre>
</blockquote>
appendix が ISO 8859-1 で書かれている場合は、代替文字列も ISO 8859-1
で定義します。
それ以外の場合は、代替文字列を日本語 EUC で定義します。
いずれも、代替文字列は最長で 31 バイトまでで、それを超えるとエラーに
なります。
<code>range-start</code>, <code>range-end</code> で指定した定義範囲内の
外字すべてについて、代替文字列を設定する必要はありません。
ただし、同一の複合指示子内で、一つの文字番号の外字に対して代替文字列を
定義できるのは一回までです。
複数回設定しようとすると、エラーになります。
また、範囲外の文字番号の代替文字列を定義しようとしても、やはりエラーに
なります。
CD-ROM 書籍がどのような外字を定義しているのかは、<code>ebfont</code> コマンド
で調べることができます (詳しくは
<a href="ebfont.html">ebfont コマンドのマニュアル</a> を参照のこと)。
</dl>
<!-- ================================================================ -->
<hr>
<p>
[<a href="ebappendix-02.html">前へ</a>] [<a href="ebappendix-04.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
</body>
</html>

View file

@ -0,0 +1,262 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<p>
[<a href="ebappendix-03.html">前へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
<hr>
<h2><a name="generate-appendix">appendix の生成</a></h2>
<p>
appendix のソースデータが書けたら、<code>ebappendix</code> コマンドを用いて
実際の (バイナリ形式の) appendix を生成します。
</p>
<p>
以下、この章では <code>ebappendix</code> の実行方法について詳しく説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="invoke-ebappendix"><code>ebappendix</code> の実行</a></h3>
<p>
<code>ebappendix</code> の一般的な起動方法は次の通りです。
</p>
<blockquote>
<pre>
% ebappendix <var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
<var>入力ディレクトリのパス</var> には、読み込む appendix ソースデータの
ディレクトリ、つまり <code>catalog.app</code> または <code>catalogs.app</code>
ファイルが存在するディレクトリを指定します。
省略した場合は、カレントディレクトリを指定したとみなされます。
</p>
<p>
標準では、出力ファイルはカレントディレクトリに作成されます。
</p>
<p>
<samp>--output-directory</samp> オプションを指定することで、
<code>ebappendix</code> はカレントディレクトリ以外の場所に出力することが
できます。
</p>
<blockquote>
<pre>
% ebappendix --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
もし出力ディレクトリが存在していなければ、自動的に <code>ebappendix</code>
が生成します。
</p>
<p>
実行すると、<code>ebappendix</code> は出力ディレクトリの下にサブディレクトリ
を作り、いくつかのファイルを生成します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a></h3>
<p>
HDD 上にコピーした CD-ROM 書籍と同じディレクトリに、appendix を重ねて
置くことができます。
</p>
<p>
これには、<code>ebappendix</code><samp>--output-directory</samp>
<samp>--no-catalog</samp> オプションを使います。
<samp>--output-directory</samp> オプションには、CD-ROM 書籍の
トップディレクトリを指定します。
</p>
<blockquote>
<pre>
% ebappendix --no-catalog --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
なお、appendix の形式 (電子ブックか EPWING か) は CD-ROM 書籍に合わせる
ようにします
(詳しくは
<a href="ebappendix-03.html#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照)。
</p>
<p>
<code>ebappendix</code> の実行前後で CD-ROM 書籍のディレクトリ構成が
どのように変化するのか、例を記してみます。
まず電子ブックの場合ですが、実行前のディレクトリ構成が次のように
なっていたとします。
</p>
<blockquote>
<pre>
catalog
ejdict/start
howto/start
</pre>
</blockquote>
<p>
<code>ebappendix</code> で appendix を重ね合わせると、次のような構成に
なります。
</p>
<blockquote>
<pre>
catalog
ejdict/start
ejdict/appendix ← appendix のファイル
howto/start
howto/appendix ← appendix のファイル
</pre>
</blockquote>
<p>
同様に、EPWING で実行前のディレクトリ構成が次のようになっていたと
すると、
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
howto/data/honmon
</pre>
</blockquote>
<p>
実行後は、次のような構成になります。
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
ejdict/data/furoku ← appendix のファイル
howto/data/honmon
howto/data/furoku ← appendix のファイル
</pre>
</blockquote>
<p>
CD-ROM 書籍によっては、ディレクトリ名に大文字が混じっていることが
ありますが、<code>ebappendix</code> はそれを検出しますので、名前を小文字に
変えたディレクトリを別途作ってしまうことはありません。
</p>
<p>
<samp>--no-catalog</samp> オプションを指定すると、<code>ebappendix</code>
カタログファイル <code>catalog</code><code>catalogs</code> ファイルを
生成しなくなります。
この appendix を EB ライブラリのアプリケーションから使う際は、
CD-ROM 書籍に最初から用意されている <code>catalog</code>
<code>catalogs</code> ファイルを CD-ROM 書籍、appendix 共用の
カタログファイルとして流用することになります。
</p>
<p>
appendix のカタログファイルは、CD-ROM 書籍のカタログファイルの部分集合
となっているため、こうした事が可能となっています。
<samp>--no-catalog</samp> オプションを指定し忘れると、
<code>ebappendix</code> は CD-ROM 書籍のカタログファイルを上書き
してしまいますので、注意して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="options-to-ebappendix"><code>ebappendix</code> のオプション</a></h3>
<p>
<code>ebappendix</code> コマンドは、伝統的な一文字オプション名と覚えやすい
長いオプション名の両方を扱うことができます。
長いオプション名を表すには、<samp>-</samp> ではなく <samp>--</samp>
用います。
オプション名が一意に決まる範囲内で、名前の後方部分を省略することができま
す。
</p>
<dl>
<dt><code>-b <var>書籍の形式</var></code></dt>
<dt><code>--booktype <var>書籍の形式</var></code></dt>
<dd>
appendix を電子ブック、EPWING のどちらの形式のレイアウトに似せて作る
のかを指定します。
電子ブック形式なら <code>eb</code>、EPWING 形式なら <code>epwing</code>
と指定します。
このオプションを指定しなかった場合、次の要領でどちらの形式で生成する
のかがが決定されます。
まず、入力ディレクトリに <code>catalog.app</code> ファイルが存在すれば
それが読み込まれ、電子ブック形式の appendix が生成されます。
<code>catalog.app</code> がなく、代わりに <code>catalogs.app</code>
存在すればそれが読み込まれ、EPWING 形式の appendix が生成されます。
(<code>catalogs.app</code><code>catalog.app</code> なければ、エラー
になります。)
<dt><code>-d</code></dt>
<dt><code>--debug</code></dt>
<dt><code>--verbose</code></dt>
<dd>
デバッグ用のメッセージを、標準エラー出力に出力します。
<dt><code>-h</code></dt>
<dt><code>--help</code></dt>
<dd>
ヘルプメッセージを標準出力に出力して、終了します。
<dt><code>-n</code></dt>
<dt><code>--no-catalog</code></dt>
<dd>
カタログファイル (<code>catalog</code> および <code>catalogs</code>) を
生成しません。
このオプションは、書籍と appendix を同じディレクトリに重ね合わせる際に
有効です
(詳しくは
<a href="ebappendix-04.html#merge-appendix">「appendix と CD-ROM 書籍の重ね合わせ」</a>
を参照のこと)。
<dt><code>-o <var>ディレクトリ</var></code></dt>
<dt><code>--output-directory <var>ディレクトリ</var></code></dt>
<dd>
出力先のディレクトリを指定します。
このオプションを省略すると、カレントディレクトリ (<code>.</code>) に
出力します。
ディレクトリが存在しなければ、自動的に生成されます。
<dt><code>-t</code></dt>
<dt><code>--test</code></dt>
<dd>
ファイルを出力しません。
入力ファイルを読み込んで、内容のチェックだけを行います。
<dt><code>-v</code></dt>
<dt><code>--version</code></dt>
<dd>
バージョン番号を標準出力に出力して、終了します。
</dl>
<hr>
<p>
[<a href="ebappendix-03.html">前へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
</body>
</html>

View file

@ -0,0 +1,747 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<h1><a name="toc">ebappendix コマンド</a></h1>
<p>
この文書は EB ライブラリバージョン
4.5-20200413
に対応しています。
</p>
<p>
目次:
</p>
<ul>
<li><a href="#what-is-appendix">appendix (付録) とは</a>
<li><a href="#what-is-ebappendix"><code>ebappendix</code> コマンドとは</a>
<li><a href="#write-appendix-source">appendix のソースデータの書き方</a>
<ul>
<li><a href="#what-is-catalog.app"><code>catalog(s).app</code> とは</a>
<li><a href="#write-catalog.app"><code>catalog(s).app</code> の書き方</a>
<li><a href="#what-is-subbook.app"><var>副本</var><code>.app</code> とは</a>
<li><a href="#subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a>
<li><a href="#single-directives"><var>副本</var><code>.app</code> の単独指示子</a>
<li><a href="#group-directives"><var>副本</var><code>.app</code> の複合指示子</a>
</ul>
<li><a href="#generate-appendix">appendix の生成</a>
<ul>
<li><a href="#invoke-ebappendix"><code>ebappendix</code> の実行</a>
<li><a href="#merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a>
<li><a href="#options-to-ebappendix"><code>ebappendix</code> のオプション</a>
</ul>
</ul>
<p>
Copyright (c) 2003-2006 Motoyuki Kasahara
</p>
<!-- ================================================================ -->
<h2><a name="what-is-appendix">appendix (付録) とは</a></h2>
<p>
<dfn>appendix</dfn> (<dfn>付録</dfn>) とは CD-ROM 書籍の補助データのことです。
appendix は CD-ROM 書籍の出版社から提供されているものではなく、
EB ライブラリに固有のものです。
</p>
<p>
appendix は以下のデータを CD-ROM 書籍に対して提供します。
</p>
<dl>
<dt>本文の区切りコード</dt>
<dd>
あなたが EB ライブラリを使って CD-ROM 辞書の中のある単語を引く際、その
単語の説明が終了する箇所で、EB ライブラリが本文の出力を止めることを
あなたは期待するのではないでしょうか。
しかし、EB ライブラリはそのような動作を保証することができません。
なぜなら、CD-ROM 書籍の本文には、項目の終わりを示す印が存在しないから
です。
幸いにも、多くの CD-ROM 書籍には、項目の終わりを示す印の代替として
使える、<dfn>区切りコード</dfn> (<dfn>stop code</dfn>) というものを持って
います。
通常、EB ライブラリはこの区切りコードを自動的に推測するようになって
いるのですが、時々誤った区切りコードを導き出すことがあります。
appendix の区切りコードは、その書籍の正しい区切りコードを EB ライブラリ
に教えてやるために用います。
<dt>外字の代替文字列</dt>
<dd>
多くの CD-ROM 書籍は、外字 (独自に定義した文字) を持っており、本文中で
その外字を使っています。
CD-ROM 書籍では外字のビットマップフォントを用意しており、
クライアントアプリケーションが外字を出力するには、そのフォントを描画
しなくてはなりません。
appendix では、外字の <dfn>代替文字列</dfn> (<dfn>alternation text</dfn>)
を定義することができます。
アプリケーションは、ビットマップフォントを描画する代わりに、その
代替文字列を出力することにしても良いでしょう。
</dl>
<p>
appendix のレイアウトは CD-ROM 書籍のものとよく似ています。
トップディレクトリには <code>catalog</code> もしくは <code>catalogs</code>
ファイルが存在し、各副本のデータは対応するサブディレクトリに配置されて
います。
</p>
<!-- ================================================================ -->
<h2><a name="what-is-ebappendix"><code>ebappendix</code> コマンドとは</a></h2>
<p>
appendix はバイナリ形式のデータファイルで構成されますので、手で直接
編集するのは容易ではありません。
そこで、EB ライブラリでは <code>ebappendix</code> コマンドを用意しています。
<code>ebappendix</code> コマンドは、テキスト形式で書かれたデータを読み込み、
バイナリ形式の appendix を生成します。
</p>
<p>
EB ライブラリの公式な FTP サイト
<a href="ftp://ftp.sra.co.jp/pub/misc/eb/appendix/">ftp://ftp.sra.co.jp/pub/misc/eb/appendix/</a>
には、既にいくつかの書籍用の appendix が置いてあります。
ここに載っていない CD-ROM 書籍用の appendix を用意したい場合は、
<code>ebappendix</code> コマンドを使いましょう。
</p>
<!-- ================================================================ -->
<h2><a name="write-appendix-source">appendix のソースデータの書き方</a></h2>
<p>
この章では、appendix のソースデータの書き方を説明します。
ここで、「ソースデータ」と言っているのは、<code>ebappendix</code> が読み込む
テキスト形式で書かれたデータのことです。
</p>
<p>
appendix を生成するためには、次に挙げるソースデータファイルが必要です。
これらのファイルをすべて、同じディレクトリ上に用意するようにします。
</p>
<dl>
<dt><code>catalog.app</code> または <code>catalogs.app</code></dt>
<dd>
appendix には必ず、<code>catalog</code> または <code>catalogs</code> という
名前のファイルが必要です。
<code>catalog.app</code>, <code>catalogs.app</code> はその生成元となる
ファイルです。
appendix に収録されている <dfn>副本 (subbook)</dfn>
(詳しくは
<a href="#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照) の一覧を記します。
<dt><var>副本</var><code>.app</code></dt>
<dd>
appendix が収録している副本それぞれに対して、一つずつ用意する必要が
あります (<var>副本</var> の部分は、実際は個々の副本の名前になります)。
appendix のメインデータである、本文の区切りコードや外字の代替文字列は、
このファイルに記します。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-catalog.app"><code>catalog(s).app</code> とは</a></h3>
<p>
CD-ROM 書籍と同様に、appendix パッケージにも必ず <code>catalog</code>
もしくは <code>catalogs</code> という名前のファイルのどちらか一方が
必要です。
<code>catalog.app</code>, <code>catalogs.app</code> ファイルは、その
生成元となります。
</p>
<p>
<code>ebappendix</code> コマンドに appendix を生成させる際には、
<code>catalog.app</code><code>catalogs.app</code> のどちらかを必ず
用意しておく必要があります。
</p>
<p>
<code>ebappendix</code> の標準の動作では、<code>catalog.app</code> という
ファイル名にしておくと、生成するファイル名も <code>catalog</code>
なります。
また、appendix 全体のディレクトリ構造が、電子ブックに似た形式になります。
</p>
<p>
反対に、<code>catalogs.app</code> というファイル名にしておくと、生成する
ファイル名も <code>catalogs</code> になります。
また、appendix 全体のディレクトリ構造が、EPWING に似た形式になります。
</p>
<p>
ただし、EPWING の書籍に対して電子ブック形式の appendix を使用しても、
動作そのものには支障がありません。
逆も同様です。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="write-catalog.app"><code>catalog(s).app</code> の書き方</a></h3>
<p>
<code>catalog(s).app</code> には、書籍に収録されている副本のディレクトリ名を
1 行に 1 つずつ書き並べます。
副本のディレクトリ名は、<code>ebinfo</code> コマンドを使うと容易に分かります。
</p>
<p>
以下は、<code>ebinfo</code> の実行例です。
</p>
<blockquote>
<pre>
% ebinfo /mnt/cdrom
ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
文字コード: JIS X 0208
副本の数: 2
副本 1:
題名: 新英和辞典(第三版)
ディレクトリ: ejdict
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字: 0xa121 -- 0xa24e
全角フォントの文字: 0xa321 -- 0xa27e
副本 2:
題名: この書籍の使い方
ディレクトリ: howto
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字:
全角フォントの文字: 0xa321 -- 0xa27e
</pre>
</blockquote>
<p>
この辞書用の appendix を作成する場合、<code>catalog(s).app</code> には次の
ように記します。
</p>
<blockquote>
<pre>
ejdict
howto
</pre>
</blockquote>
<p>
(<code>ebinfo</code> コマンドに関しての詳細は、
<a href="ebinfo.html">ebinfo コマンドのマニュアル</a> を参照のこと。)
</p>
<p>
ディレクトリ名の大文字、小文字は、同じものとして扱われます。
また、空行およびおよび空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
必ずもとの書籍の副本すべてを、同じ順序で <code>catalog(s).app</code>
記すようにして下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-subbook.app"><var>副本</var><code>.app</code> とは</a></h3>
<p>
appendix が収録している副本それぞれに対して、ソースデータファイル
<var>副本</var><code>.app</code> を用意する必要があります。
<var>副本</var> の部分は、実際には個々の副本の使用する
ディレクトリ名になります。
</p>
<p>
たとえば、前節の例では、書籍が <code>ejdict</code><code>howto</code>
というディレクトリ名を持った副本を持っていました。
この場合、用意するファイルは <code>ejdict.app</code><code>howto.app</code>
になります。
</p>
<p>
<var>副本</var><code>.app</code> ファイルは appendix のメインデータである、
本文の区切りコードや外字の代替文字列を収録した <code>appendix</code>
<code>furoku</code> といったファイルの生成元になります。
(appendix を電子ブック形式で生成すると <code>appendix</code>、EPWING 形式
で生成すると <code>furoku</code> というファイル名になります。)
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a></h3>
<p>
各副本のソースデータを記したファイル「<var>副本</var><code>.app</code>
の中では、空行、および空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
他の行はすべて、<dfn>単独指示子 (single directive)</dfn>
<dfn>複合指示子 (group directive)</dfn> のいずれかでなくてはなりません。
単独指示子と複合指示子は、どのような順序で定義しても差し支えありません。
</p>
<p>
単独指示子とは、1 行で完結する指示子です。
単独指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
<var>指示子の名前</var> <var>指示子の値</var>
</pre>
</blockquote>
<p>
以下の例では、<code>stop-code</code> が指示子の名前、
<samp>0x1f09 0x0001</samp> がその値です。
</p>
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
<p>
指示子名の大文字と小文字は区別されますので、<samp>stop-code</samp>
<samp>Stop-Code</samp> と書くことはできません。
指示子の名前と値の区切りには、空白かタブを用います。
連続した空白とタブが、行頭および行末にあった場合、それらは無視されます。
</p>
<p>
複合指示子とは、記述が設定ファイル内の複数行に渡る指示子です。
複合指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
begin <var>複合指示子の名前</var>
<var>副指示子の名前</var> <var>副指示子の値</var>
:
: (繰り返し)
:
end
</pre>
</blockquote>
<p>
キーワード <code>begin</code> が、複合指示子の開始を表します。
<code>begin</code> は後ろに <var>複合指示子の名前</var> を引数として
取ります。
<code>begin</code><var>複合指示子の名前</var> は空白かタブで区切り、
両方とも同じ行の中に置きます。
キーワード <code>end</code> は、複合指示子の終了を表します。
<code>end</code> は、単独で 1 行にして置きます。
</p>
<p>
今のところ <var>副本</var><code>.app</code> で使用できる複合指示子の名前は、
<code>narrow</code><code>wide</code> の 2 つだけです。
それぞれの <dfn>副指示子</dfn> は、<code>begin</code><code>end</code>
の行の間に置きます。
副指示子に関する記述の一般的な規則は、単独指示子と変わりません
(たとえば、<var>副指示子の名前</var><var>副指示子の値</var> は空白か
タブで区切ることなど)。
</p>
<p>
以下は、 <code>narrow</code> 複合指示子の記述例です。
</p>
<blockquote>
<pre>
begin narrow
range-start 0xa121
range-end 0xa123
0xa121 [→参照]
0xa122 [→音声]
0xa123 [→図解]
end
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="single-directives"><var>副本</var><code>.app</code> の単独指示子</a></h3>
<p>
単独指示子には次のようなものがあります。
</p>
<dl>
<dt><code>character-code</code></dt>
<dd>
appendix の文字コードを指定します。
文字コードは必ず、CD-ROM 書籍に合わせるようにします。
CD-ROM 書籍の文字コードは、<code>ebinfo</code> コマンドの出力を見れば確認
できます。
CD-ROM 書籍が ISO 8859-1 で書かれている場合は、指示子の値として
<samp>ISO8859-1</samp> を指定します。
それ以外の場合は、<samp>JISX0208</samp> を指定して下さい。
<blockquote>
<pre>
character-code JISX0208
</pre>
</blockquote>
この指示子は、<var>副本</var><code>.app</code> ファイル内で必ず一回定義
されなければなりません。
定義しなかったり、二度以上定義するとエラーになります。
<dt><code>stop-code</code></dt>
<dd>
副本の本文の区切りコードを指定します。
指示子の値は、区切りコードの文字番号を 2 つ書き並べたものになります。
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁
で記します。
ただし、1つ目の文字番号は、<samp>0x1f09</samp><samp>0x1f41</samp>
なければなりません。
それ以外だとエラーになります。
<code>ebstopcode</code> コマンドを使うと、副本に適切な区切りコードを
特定することができます (詳しくは
<a href="ebstopcode.html">ebstopcode コマンドのマニュアル</a> を参照の
こと)。
この指示子は定義しなくても構いませんが、二度以上定義するとエラーになります。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="group-directives"><var>副本</var><code>.app</code> の複合指示子</a></h3>
<p>
<code>narrow</code> および <code>wide</code> 複合指示子は、それぞれ副本に
対する半角外字および全角外字に対する代替文字列を定義するために用います。
ただし、副本が外字を定義していても、代替文字列を利用する必要がなければ、
<code>narrow</code>, <code>wide</code> 複合指示子を記述する必要はありません。
</p>
<p>
<code>narrow</code><code>wide</code> 複合指示子内で定義できる副指示子は、
まったく同じです。
副指示子には次のようなものがあります。
</p>
<dl>
<dt><code>range-start</code></dt>
<dd>
外字の定義範囲を記します。
開始位置の文字番号を <code>range-start</code> で、終了位置の文字番号を
<code>range-end</code> で指定します。
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁で
記します。
以下は記述例です。
<blockquote>
<pre>
range-start 0xa121
range-end 0xa123
</pre>
</blockquote>
定義範囲は、<code>ebinfo</code> コマンドの出力結果の
「半角フォントの文字 (narrow font characters)」
「全角フォントの文字 (wide font characters)」
で記された範囲と一致させるようにして下さい。
<code>narrow</code> および <code>wide</code> 複合指示子内では、
必ず一回ずつ <code>range-start</code> および <code>range-end</code>
定義しなければなりません。
定義しなかったり、二度以上定義したりするとエラーになります。
<dt><code>0x<var>hhhh</var></code></dt>
<dd>
<var>hhhh</var> は、4 桁 の 16進数です。
文字番号 <code>0x</code><var>hhhh</var> の全角外字ないし半角外字に対して、
代替文字列を定義します。
<blockquote>
<pre>
0xa121 [名]
</pre>
</blockquote>
appendix が ISO 8859-1 で書かれている場合は、代替文字列も ISO 8859-1
で定義します。
それ以外の場合は、代替文字列を日本語 EUC で定義します。
いずれも、代替文字列は最長で 31 バイトまでで、それを超えるとエラーに
なります。
<code>range-start</code>, <code>range-end</code> で指定した定義範囲内の
外字すべてについて、代替文字列を設定する必要はありません。
ただし、同一の複合指示子内で、一つの文字番号の外字に対して代替文字列を
定義できるのは一回までです。
複数回設定しようとすると、エラーになります。
また、範囲外の文字番号の代替文字列を定義しようとしても、やはりエラーに
なります。
CD-ROM 書籍がどのような外字を定義しているのかは、<code>ebfont</code> コマンド
で調べることができます (詳しくは
<a href="ebfont.html">ebfont コマンドのマニュアル</a> を参照のこと)。
</dl>
<!-- ================================================================ -->
<h2><a name="generate-appendix">appendix の生成</a></h2>
<p>
appendix のソースデータが書けたら、<code>ebappendix</code> コマンドを用いて
実際の (バイナリ形式の) appendix を生成します。
</p>
<p>
以下、この章では <code>ebappendix</code> の実行方法について詳しく説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="invoke-ebappendix"><code>ebappendix</code> の実行</a></h3>
<p>
<code>ebappendix</code> の一般的な起動方法は次の通りです。
</p>
<blockquote>
<pre>
% ebappendix <var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
<var>入力ディレクトリのパス</var> には、読み込む appendix ソースデータの
ディレクトリ、つまり <code>catalog.app</code> または <code>catalogs.app</code>
ファイルが存在するディレクトリを指定します。
省略した場合は、カレントディレクトリを指定したとみなされます。
</p>
<p>
標準では、出力ファイルはカレントディレクトリに作成されます。
</p>
<p>
<samp>--output-directory</samp> オプションを指定することで、
<code>ebappendix</code> はカレントディレクトリ以外の場所に出力することが
できます。
</p>
<blockquote>
<pre>
% ebappendix --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
もし出力ディレクトリが存在していなければ、自動的に <code>ebappendix</code>
が生成します。
</p>
<p>
実行すると、<code>ebappendix</code> は出力ディレクトリの下にサブディレクトリ
を作り、いくつかのファイルを生成します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a></h3>
<p>
HDD 上にコピーした CD-ROM 書籍と同じディレクトリに、appendix を重ねて
置くことができます。
</p>
<p>
これには、<code>ebappendix</code><samp>--output-directory</samp>
<samp>--no-catalog</samp> オプションを使います。
<samp>--output-directory</samp> オプションには、CD-ROM 書籍の
トップディレクトリを指定します。
</p>
<blockquote>
<pre>
% ebappendix --no-catalog --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
なお、appendix の形式 (電子ブックか EPWING か) は CD-ROM 書籍に合わせる
ようにします
(詳しくは
<a href="#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照)。
</p>
<p>
<code>ebappendix</code> の実行前後で CD-ROM 書籍のディレクトリ構成が
どのように変化するのか、例を記してみます。
まず電子ブックの場合ですが、実行前のディレクトリ構成が次のように
なっていたとします。
</p>
<blockquote>
<pre>
catalog
ejdict/start
howto/start
</pre>
</blockquote>
<p>
<code>ebappendix</code> で appendix を重ね合わせると、次のような構成に
なります。
</p>
<blockquote>
<pre>
catalog
ejdict/start
ejdict/appendix ← appendix のファイル
howto/start
howto/appendix ← appendix のファイル
</pre>
</blockquote>
<p>
同様に、EPWING で実行前のディレクトリ構成が次のようになっていたと
すると、
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
howto/data/honmon
</pre>
</blockquote>
<p>
実行後は、次のような構成になります。
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
ejdict/data/furoku ← appendix のファイル
howto/data/honmon
howto/data/furoku ← appendix のファイル
</pre>
</blockquote>
<p>
CD-ROM 書籍によっては、ディレクトリ名に大文字が混じっていることが
ありますが、<code>ebappendix</code> はそれを検出しますので、名前を小文字に
変えたディレクトリを別途作ってしまうことはありません。
</p>
<p>
<samp>--no-catalog</samp> オプションを指定すると、<code>ebappendix</code>
カタログファイル <code>catalog</code><code>catalogs</code> ファイルを
生成しなくなります。
この appendix を EB ライブラリのアプリケーションから使う際は、
CD-ROM 書籍に最初から用意されている <code>catalog</code>
<code>catalogs</code> ファイルを CD-ROM 書籍、appendix 共用の
カタログファイルとして流用することになります。
</p>
<p>
appendix のカタログファイルは、CD-ROM 書籍のカタログファイルの部分集合
となっているため、こうした事が可能となっています。
<samp>--no-catalog</samp> オプションを指定し忘れると、
<code>ebappendix</code> は CD-ROM 書籍のカタログファイルを上書き
してしまいますので、注意して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="options-to-ebappendix"><code>ebappendix</code> のオプション</a></h3>
<p>
<code>ebappendix</code> コマンドは、伝統的な一文字オプション名と覚えやすい
長いオプション名の両方を扱うことができます。
長いオプション名を表すには、<samp>-</samp> ではなく <samp>--</samp>
用います。
オプション名が一意に決まる範囲内で、名前の後方部分を省略することができま
す。
</p>
<dl>
<dt><code>-b <var>書籍の形式</var></code></dt>
<dt><code>--booktype <var>書籍の形式</var></code></dt>
<dd>
appendix を電子ブック、EPWING のどちらの形式のレイアウトに似せて作る
のかを指定します。
電子ブック形式なら <code>eb</code>、EPWING 形式なら <code>epwing</code>
と指定します。
このオプションを指定しなかった場合、次の要領でどちらの形式で生成する
のかがが決定されます。
まず、入力ディレクトリに <code>catalog.app</code> ファイルが存在すれば
それが読み込まれ、電子ブック形式の appendix が生成されます。
<code>catalog.app</code> がなく、代わりに <code>catalogs.app</code>
存在すればそれが読み込まれ、EPWING 形式の appendix が生成されます。
(<code>catalogs.app</code><code>catalog.app</code> なければ、エラー
になります。)
<dt><code>-d</code></dt>
<dt><code>--debug</code></dt>
<dt><code>--verbose</code></dt>
<dd>
デバッグ用のメッセージを、標準エラー出力に出力します。
<dt><code>-h</code></dt>
<dt><code>--help</code></dt>
<dd>
ヘルプメッセージを標準出力に出力して、終了します。
<dt><code>-n</code></dt>
<dt><code>--no-catalog</code></dt>
<dd>
カタログファイル (<code>catalog</code> および <code>catalogs</code>) を
生成しません。
このオプションは、書籍と appendix を同じディレクトリに重ね合わせる際に
有効です
(詳しくは
<a href="#merge-appendix">「appendix と CD-ROM 書籍の重ね合わせ」</a>
を参照のこと)。
<dt><code>-o <var>ディレクトリ</var></code></dt>
<dt><code>--output-directory <var>ディレクトリ</var></code></dt>
<dd>
出力先のディレクトリを指定します。
このオプションを省略すると、カレントディレクトリ (<code>.</code>) に
出力します。
ディレクトリが存在しなければ、自動的に生成されます。
<dt><code>-t</code></dt>
<dt><code>--test</code></dt>
<dd>
ファイルを出力しません。
入力ファイルを読み込んで、内容のチェックだけを行います。
<dt><code>-v</code></dt>
<dt><code>--version</code></dt>
<dd>
バージョン番号を標準出力に出力して、終了します。
</dl>
</body>
</html>

View file

@ -0,0 +1,19 @@
<ul>
<li><a href="#what-is-appendix">appendix (付録) とは</a>
<li><a href="#what-is-ebappendix"><code>ebappendix</code> コマンドとは</a>
<li><a href="#write-appendix-source">appendix のソースデータの書き方</a>
<ul>
<li><a href="#what-is-catalog.app"><code>catalog(s).app</code> とは</a>
<li><a href="#write-catalog.app"><code>catalog(s).app</code> の書き方</a>
<li><a href="#what-is-subbook.app"><var>副本</var><code>.app</code> とは</a>
<li><a href="#subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a>
<li><a href="#single-directives"><var>副本</var><code>.app</code> の単独指示子</a>
<li><a href="#group-directives"><var>副本</var><code>.app</code> の複合指示子</a>
</ul>
<li><a href="#generate-appendix">appendix の生成</a>
<ul>
<li><a href="#invoke-ebappendix"><code>ebappendix</code> の実行</a>
<li><a href="#merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a>
<li><a href="#options-to-ebappendix"><code>ebappendix</code> のオプション</a>
</ul>
</ul>

View file

@ -0,0 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<p>
[<a href="ebappendix-01.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
<hr>
<h1><a name="toc">ebappendix コマンド</a></h1>
<p>
この文書は EB ライブラリバージョン
4.5-20200413
に対応しています。
</p>
<p>
目次:
</p>
<ul>
<li><a href="ebappendix-01.html#what-is-appendix">appendix (付録) とは</a>
<li><a href="ebappendix-02.html#what-is-ebappendix"><code>ebappendix</code> コマンドとは</a>
<li><a href="ebappendix-03.html#write-appendix-source">appendix のソースデータの書き方</a>
<ul>
<li><a href="ebappendix-03.html#what-is-catalog.app"><code>catalog(s).app</code> とは</a>
<li><a href="ebappendix-03.html#write-catalog.app"><code>catalog(s).app</code> の書き方</a>
<li><a href="ebappendix-03.html#what-is-subbook.app"><var>副本</var><code>.app</code> とは</a>
<li><a href="ebappendix-03.html#subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a>
<li><a href="ebappendix-03.html#single-directives"><var>副本</var><code>.app</code> の単独指示子</a>
<li><a href="ebappendix-03.html#group-directives"><var>副本</var><code>.app</code> の複合指示子</a>
</ul>
<li><a href="ebappendix-04.html#generate-appendix">appendix の生成</a>
<ul>
<li><a href="ebappendix-04.html#invoke-ebappendix"><code>ebappendix</code> の実行</a>
<li><a href="ebappendix-04.html#merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a>
<li><a href="ebappendix-04.html#options-to-ebappendix"><code>ebappendix</code> のオプション</a>
</ul>
</ul>
<p>
Copyright (c) 2003-2006 Motoyuki Kasahara
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="ebappendix-01.html">次へ</a>] [<a href="ebappendix.html#toc">目次</a>]
</p>
</body>
</html>

View file

@ -0,0 +1,729 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebappendix コマンド</title>
</head>
<body>
<h1><a name="toc">ebappendix コマンド</a></h1>
<p>
この文書は EB ライブラリバージョン
<!-- #include "version.html" -->
に対応しています。
</p>
<p>
目次:
</p>
<!-- #include "ebappendix-toc.html" -->
<p>
Copyright (c) 2003-2006 Motoyuki Kasahara
</p>
<!-- ================================================================ -->
<h2><a name="what-is-appendix">appendix (付録) とは</a></h2>
<p>
<dfn>appendix</dfn> (<dfn>付録</dfn>) とは CD-ROM 書籍の補助データのことです。
appendix は CD-ROM 書籍の出版社から提供されているものではなく、
EB ライブラリに固有のものです。
</p>
<p>
appendix は以下のデータを CD-ROM 書籍に対して提供します。
</p>
<dl>
<dt>本文の区切りコード</dt>
<dd>
あなたが EB ライブラリを使って CD-ROM 辞書の中のある単語を引く際、その
単語の説明が終了する箇所で、EB ライブラリが本文の出力を止めることを
あなたは期待するのではないでしょうか。
しかし、EB ライブラリはそのような動作を保証することができません。
なぜなら、CD-ROM 書籍の本文には、項目の終わりを示す印が存在しないから
です。
幸いにも、多くの CD-ROM 書籍には、項目の終わりを示す印の代替として
使える、<dfn>区切りコード</dfn> (<dfn>stop code</dfn>) というものを持って
います。
通常、EB ライブラリはこの区切りコードを自動的に推測するようになって
いるのですが、時々誤った区切りコードを導き出すことがあります。
appendix の区切りコードは、その書籍の正しい区切りコードを EB ライブラリ
に教えてやるために用います。
<dt>外字の代替文字列</dt>
<dd>
多くの CD-ROM 書籍は、外字 (独自に定義した文字) を持っており、本文中で
その外字を使っています。
CD-ROM 書籍では外字のビットマップフォントを用意しており、
クライアントアプリケーションが外字を出力するには、そのフォントを描画
しなくてはなりません。
appendix では、外字の <dfn>代替文字列</dfn> (<dfn>alternation text</dfn>)
を定義することができます。
アプリケーションは、ビットマップフォントを描画する代わりに、その
代替文字列を出力することにしても良いでしょう。
</dl>
<p>
appendix のレイアウトは CD-ROM 書籍のものとよく似ています。
トップディレクトリには <code>catalog</code> もしくは <code>catalogs</code>
ファイルが存在し、各副本のデータは対応するサブディレクトリに配置されて
います。
</p>
<!-- ================================================================ -->
<h2><a name="what-is-ebappendix"><code>ebappendix</code> コマンドとは</a></h2>
<p>
appendix はバイナリ形式のデータファイルで構成されますので、手で直接
編集するのは容易ではありません。
そこで、EB ライブラリでは <code>ebappendix</code> コマンドを用意しています。
<code>ebappendix</code> コマンドは、テキスト形式で書かれたデータを読み込み、
バイナリ形式の appendix を生成します。
</p>
<p>
EB ライブラリの公式な FTP サイト
<a href="ftp://ftp.sra.co.jp/pub/misc/eb/appendix/">ftp://ftp.sra.co.jp/pub/misc/eb/appendix/</a>
には、既にいくつかの書籍用の appendix が置いてあります。
ここに載っていない CD-ROM 書籍用の appendix を用意したい場合は、
<code>ebappendix</code> コマンドを使いましょう。
</p>
<!-- ================================================================ -->
<h2><a name="write-appendix-source">appendix のソースデータの書き方</a></h2>
<p>
この章では、appendix のソースデータの書き方を説明します。
ここで、「ソースデータ」と言っているのは、<code>ebappendix</code> が読み込む
テキスト形式で書かれたデータのことです。
</p>
<p>
appendix を生成するためには、次に挙げるソースデータファイルが必要です。
これらのファイルをすべて、同じディレクトリ上に用意するようにします。
</p>
<dl>
<dt><code>catalog.app</code> または <code>catalogs.app</code></dt>
<dd>
appendix には必ず、<code>catalog</code> または <code>catalogs</code> という
名前のファイルが必要です。
<code>catalog.app</code>, <code>catalogs.app</code> はその生成元となる
ファイルです。
appendix に収録されている <dfn>副本 (subbook)</dfn>
(詳しくは
<a href="#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照) の一覧を記します。
<dt><var>副本</var><code>.app</code></dt>
<dd>
appendix が収録している副本それぞれに対して、一つずつ用意する必要が
あります (<var>副本</var> の部分は、実際は個々の副本の名前になります)。
appendix のメインデータである、本文の区切りコードや外字の代替文字列は、
このファイルに記します。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-catalog.app"><code>catalog(s).app</code> とは</a></h3>
<p>
CD-ROM 書籍と同様に、appendix パッケージにも必ず <code>catalog</code>
もしくは <code>catalogs</code> という名前のファイルのどちらか一方が
必要です。
<code>catalog.app</code>, <code>catalogs.app</code> ファイルは、その
生成元となります。
</p>
<p>
<code>ebappendix</code> コマンドに appendix を生成させる際には、
<code>catalog.app</code><code>catalogs.app</code> のどちらかを必ず
用意しておく必要があります。
</p>
<p>
<code>ebappendix</code> の標準の動作では、<code>catalog.app</code> という
ファイル名にしておくと、生成するファイル名も <code>catalog</code>
なります。
また、appendix 全体のディレクトリ構造が、電子ブックに似た形式になります。
</p>
<p>
反対に、<code>catalogs.app</code> というファイル名にしておくと、生成する
ファイル名も <code>catalogs</code> になります。
また、appendix 全体のディレクトリ構造が、EPWING に似た形式になります。
</p>
<p>
ただし、EPWING の書籍に対して電子ブック形式の appendix を使用しても、
動作そのものには支障がありません。
逆も同様です。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="write-catalog.app"><code>catalog(s).app</code> の書き方</a></h3>
<p>
<code>catalog(s).app</code> には、書籍に収録されている副本のディレクトリ名を
1 行に 1 つずつ書き並べます。
副本のディレクトリ名は、<code>ebinfo</code> コマンドを使うと容易に分かります。
</p>
<p>
以下は、<code>ebinfo</code> の実行例です。
</p>
<blockquote>
<pre>
% ebinfo /mnt/cdrom
ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
文字コード: JIS X 0208
副本の数: 2
副本 1:
題名: 新英和辞典(第三版)
ディレクトリ: ejdict
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字: 0xa121 -- 0xa24e
全角フォントの文字: 0xa321 -- 0xa27e
副本 2:
題名: この書籍の使い方
ディレクトリ: howto
検索方式: 前方一致 後方一致 条件 メニュー
フォントの大きさ: 16 24 30 48
半角フォントの文字:
全角フォントの文字: 0xa321 -- 0xa27e
</pre>
</blockquote>
<p>
この辞書用の appendix を作成する場合、<code>catalog(s).app</code> には次の
ように記します。
</p>
<blockquote>
<pre>
ejdict
howto
</pre>
</blockquote>
<p>
(<code>ebinfo</code> コマンドに関しての詳細は、
<a href="ebinfo.html">ebinfo コマンドのマニュアル</a> を参照のこと。)
</p>
<p>
ディレクトリ名の大文字、小文字は、同じものとして扱われます。
また、空行およびおよび空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
必ずもとの書籍の副本すべてを、同じ順序で <code>catalog(s).app</code>
記すようにして下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="what-is-subbook.app"><var>副本</var><code>.app</code> とは</a></h3>
<p>
appendix が収録している副本それぞれに対して、ソースデータファイル
<var>副本</var><code>.app</code> を用意する必要があります。
<var>副本</var> の部分は、実際には個々の副本の使用する
ディレクトリ名になります。
</p>
<p>
たとえば、前節の例では、書籍が <code>ejdict</code><code>howto</code>
というディレクトリ名を持った副本を持っていました。
この場合、用意するファイルは <code>ejdict.app</code><code>howto.app</code>
になります。
</p>
<p>
<var>副本</var><code>.app</code> ファイルは appendix のメインデータである、
本文の区切りコードや外字の代替文字列を収録した <code>appendix</code>
<code>furoku</code> といったファイルの生成元になります。
(appendix を電子ブック形式で生成すると <code>appendix</code>、EPWING 形式
で生成すると <code>furoku</code> というファイル名になります。)
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="subbook.app-syntax"><var>副本</var><code>.app</code> の文法</a></h3>
<p>
各副本のソースデータを記したファイル「<var>副本</var><code>.app</code>
の中では、空行、および空白以外の最初の文字がハッシュ記号 (<samp>#</samp>)
である行は無視されます。
</p>
<p>
他の行はすべて、<dfn>単独指示子 (single directive)</dfn>
<dfn>複合指示子 (group directive)</dfn> のいずれかでなくてはなりません。
単独指示子と複合指示子は、どのような順序で定義しても差し支えありません。
</p>
<p>
単独指示子とは、1 行で完結する指示子です。
単独指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
<var>指示子の名前</var> <var>指示子の値</var>
</pre>
</blockquote>
<p>
以下の例では、<code>stop-code</code> が指示子の名前、
<samp>0x1f09 0x0001</samp> がその値です。
</p>
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
<p>
指示子名の大文字と小文字は区別されますので、<samp>stop-code</samp>
<samp>Stop-Code</samp> と書くことはできません。
指示子の名前と値の区切りには、空白かタブを用います。
連続した空白とタブが、行頭および行末にあった場合、それらは無視されます。
</p>
<p>
複合指示子とは、記述が設定ファイル内の複数行に渡る指示子です。
複合指示子の一般形は次の通りです。
</p>
<blockquote>
<pre>
begin <var>複合指示子の名前</var>
<var>副指示子の名前</var> <var>副指示子の値</var>
:
: (繰り返し)
:
end
</pre>
</blockquote>
<p>
キーワード <code>begin</code> が、複合指示子の開始を表します。
<code>begin</code> は後ろに <var>複合指示子の名前</var> を引数として
取ります。
<code>begin</code><var>複合指示子の名前</var> は空白かタブで区切り、
両方とも同じ行の中に置きます。
キーワード <code>end</code> は、複合指示子の終了を表します。
<code>end</code> は、単独で 1 行にして置きます。
</p>
<p>
今のところ <var>副本</var><code>.app</code> で使用できる複合指示子の名前は、
<code>narrow</code><code>wide</code> の 2 つだけです。
それぞれの <dfn>副指示子</dfn> は、<code>begin</code><code>end</code>
の行の間に置きます。
副指示子に関する記述の一般的な規則は、単独指示子と変わりません
(たとえば、<var>副指示子の名前</var><var>副指示子の値</var> は空白か
タブで区切ることなど)。
</p>
<p>
以下は、 <code>narrow</code> 複合指示子の記述例です。
</p>
<blockquote>
<pre>
begin narrow
range-start 0xa121
range-end 0xa123
0xa121 [→参照]
0xa122 [→音声]
0xa123 [→図解]
end
</pre>
</blockquote>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="single-directives"><var>副本</var><code>.app</code> の単独指示子</a></h3>
<p>
単独指示子には次のようなものがあります。
</p>
<dl>
<dt><code>character-code</code></dt>
<dd>
appendix の文字コードを指定します。
文字コードは必ず、CD-ROM 書籍に合わせるようにします。
CD-ROM 書籍の文字コードは、<code>ebinfo</code> コマンドの出力を見れば確認
できます。
CD-ROM 書籍が ISO 8859-1 で書かれている場合は、指示子の値として
<samp>ISO8859-1</samp> を指定します。
それ以外の場合は、<samp>JISX0208</samp> を指定して下さい。
<blockquote>
<pre>
character-code JISX0208
</pre>
</blockquote>
この指示子は、<var>副本</var><code>.app</code> ファイル内で必ず一回定義
されなければなりません。
定義しなかったり、二度以上定義するとエラーになります。
<dt><code>stop-code</code></dt>
<dd>
副本の本文の区切りコードを指定します。
指示子の値は、区切りコードの文字番号を 2 つ書き並べたものになります。
<blockquote>
<pre>
stop-code 0x1f09 0x0001
</pre>
</blockquote>
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁
で記します。
ただし、1つ目の文字番号は、<samp>0x1f09</samp><samp>0x1f41</samp>
なければなりません。
それ以外だとエラーになります。
<code>ebstopcode</code> コマンドを使うと、副本に適切な区切りコードを
特定することができます (詳しくは
<a href="ebstopcode.html">ebstopcode コマンドのマニュアル</a> を参照の
こと)。
この指示子は定義しなくても構いませんが、二度以上定義するとエラーになります。
</dl>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="group-directives"><var>副本</var><code>.app</code> の複合指示子</a></h3>
<p>
<code>narrow</code> および <code>wide</code> 複合指示子は、それぞれ副本に
対する半角外字および全角外字に対する代替文字列を定義するために用います。
ただし、副本が外字を定義していても、代替文字列を利用する必要がなければ、
<code>narrow</code>, <code>wide</code> 複合指示子を記述する必要はありません。
</p>
<p>
<code>narrow</code><code>wide</code> 複合指示子内で定義できる副指示子は、
まったく同じです。
副指示子には次のようなものがあります。
</p>
<dl>
<dt><code>range-start</code></dt>
<dd>
外字の定義範囲を記します。
開始位置の文字番号を <code>range-start</code> で、終了位置の文字番号を
<code>range-end</code> で指定します。
文字番号は、<samp>0x</samp> ないし <samp>0X</samp> に続けて 16進数 4 桁で
記します。
以下は記述例です。
<blockquote>
<pre>
range-start 0xa121
range-end 0xa123
</pre>
</blockquote>
定義範囲は、<code>ebinfo</code> コマンドの出力結果の
「半角フォントの文字 (narrow font characters)」
「全角フォントの文字 (wide font characters)」
で記された範囲と一致させるようにして下さい。
<code>narrow</code> および <code>wide</code> 複合指示子内では、
必ず一回ずつ <code>range-start</code> および <code>range-end</code>
定義しなければなりません。
定義しなかったり、二度以上定義したりするとエラーになります。
<dt><code>0x<var>hhhh</var></code></dt>
<dd>
<var>hhhh</var> は、4 桁 の 16進数です。
文字番号 <code>0x</code><var>hhhh</var> の全角外字ないし半角外字に対して、
代替文字列を定義します。
<blockquote>
<pre>
0xa121 [名]
</pre>
</blockquote>
appendix が ISO 8859-1 で書かれている場合は、代替文字列も ISO 8859-1
で定義します。
それ以外の場合は、代替文字列を日本語 EUC で定義します。
いずれも、代替文字列は最長で 31 バイトまでで、それを超えるとエラーに
なります。
<code>range-start</code>, <code>range-end</code> で指定した定義範囲内の
外字すべてについて、代替文字列を設定する必要はありません。
ただし、同一の複合指示子内で、一つの文字番号の外字に対して代替文字列を
定義できるのは一回までです。
複数回設定しようとすると、エラーになります。
また、範囲外の文字番号の代替文字列を定義しようとしても、やはりエラーに
なります。
CD-ROM 書籍がどのような外字を定義しているのかは、<code>ebfont</code> コマンド
で調べることができます (詳しくは
<a href="ebfont.html">ebfont コマンドのマニュアル</a> を参照のこと)。
</dl>
<!-- ================================================================ -->
<h2><a name="generate-appendix">appendix の生成</a></h2>
<p>
appendix のソースデータが書けたら、<code>ebappendix</code> コマンドを用いて
実際の (バイナリ形式の) appendix を生成します。
</p>
<p>
以下、この章では <code>ebappendix</code> の実行方法について詳しく説明します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="invoke-ebappendix"><code>ebappendix</code> の実行</a></h3>
<p>
<code>ebappendix</code> の一般的な起動方法は次の通りです。
</p>
<blockquote>
<pre>
% ebappendix <var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
<var>入力ディレクトリのパス</var> には、読み込む appendix ソースデータの
ディレクトリ、つまり <code>catalog.app</code> または <code>catalogs.app</code>
ファイルが存在するディレクトリを指定します。
省略した場合は、カレントディレクトリを指定したとみなされます。
</p>
<p>
標準では、出力ファイルはカレントディレクトリに作成されます。
</p>
<p>
<samp>--output-directory</samp> オプションを指定することで、
<code>ebappendix</code> はカレントディレクトリ以外の場所に出力することが
できます。
</p>
<blockquote>
<pre>
% ebappendix --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
もし出力ディレクトリが存在していなければ、自動的に <code>ebappendix</code>
が生成します。
</p>
<p>
実行すると、<code>ebappendix</code> は出力ディレクトリの下にサブディレクトリ
を作り、いくつかのファイルを生成します。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="merge-appendix">appendix と CD-ROM 書籍の重ね合わせ</a></h3>
<p>
HDD 上にコピーした CD-ROM 書籍と同じディレクトリに、appendix を重ねて
置くことができます。
</p>
<p>
これには、<code>ebappendix</code><samp>--output-directory</samp>
<samp>--no-catalog</samp> オプションを使います。
<samp>--output-directory</samp> オプションには、CD-ROM 書籍の
トップディレクトリを指定します。
</p>
<blockquote>
<pre>
% ebappendix --no-catalog --output-directory <var>出力ディレクトリのパス</var> \
<var>入力ディレクトリのパス</var>
</pre>
</blockquote>
<p>
なお、appendix の形式 (電子ブックか EPWING か) は CD-ROM 書籍に合わせる
ようにします
(詳しくは
<a href="#write-catalog.app"><code>catalog(s).app</code> の書き方」</a>
を参照)。
</p>
<p>
<code>ebappendix</code> の実行前後で CD-ROM 書籍のディレクトリ構成が
どのように変化するのか、例を記してみます。
まず電子ブックの場合ですが、実行前のディレクトリ構成が次のように
なっていたとします。
</p>
<blockquote>
<pre>
catalog
ejdict/start
howto/start
</pre>
</blockquote>
<p>
<code>ebappendix</code> で appendix を重ね合わせると、次のような構成に
なります。
</p>
<blockquote>
<pre>
catalog
ejdict/start
ejdict/appendix ← appendix のファイル
howto/start
howto/appendix ← appendix のファイル
</pre>
</blockquote>
<p>
同様に、EPWING で実行前のディレクトリ構成が次のようになっていたと
すると、
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
howto/data/honmon
</pre>
</blockquote>
<p>
実行後は、次のような構成になります。
</p>
<blockquote>
<pre>
catalogs
ejdict/data/honmon
ejdict/data/furoku ← appendix のファイル
howto/data/honmon
howto/data/furoku ← appendix のファイル
</pre>
</blockquote>
<p>
CD-ROM 書籍によっては、ディレクトリ名に大文字が混じっていることが
ありますが、<code>ebappendix</code> はそれを検出しますので、名前を小文字に
変えたディレクトリを別途作ってしまうことはありません。
</p>
<p>
<samp>--no-catalog</samp> オプションを指定すると、<code>ebappendix</code>
カタログファイル <code>catalog</code><code>catalogs</code> ファイルを
生成しなくなります。
この appendix を EB ライブラリのアプリケーションから使う際は、
CD-ROM 書籍に最初から用意されている <code>catalog</code>
<code>catalogs</code> ファイルを CD-ROM 書籍、appendix 共用の
カタログファイルとして流用することになります。
</p>
<p>
appendix のカタログファイルは、CD-ROM 書籍のカタログファイルの部分集合
となっているため、こうした事が可能となっています。
<samp>--no-catalog</samp> オプションを指定し忘れると、
<code>ebappendix</code> は CD-ROM 書籍のカタログファイルを上書き
してしまいますので、注意して下さい。
</p>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3><a name="options-to-ebappendix"><code>ebappendix</code> のオプション</a></h3>
<p>
<code>ebappendix</code> コマンドは、伝統的な一文字オプション名と覚えやすい
長いオプション名の両方を扱うことができます。
長いオプション名を表すには、<samp>-</samp> ではなく <samp>--</samp>
用います。
オプション名が一意に決まる範囲内で、名前の後方部分を省略することができま
す。
</p>
<dl>
<dt><code>-b <var>書籍の形式</var></code></dt>
<dt><code>--booktype <var>書籍の形式</var></code></dt>
<dd>
appendix を電子ブック、EPWING のどちらの形式のレイアウトに似せて作る
のかを指定します。
電子ブック形式なら <code>eb</code>、EPWING 形式なら <code>epwing</code>
と指定します。
このオプションを指定しなかった場合、次の要領でどちらの形式で生成する
のかがが決定されます。
まず、入力ディレクトリに <code>catalog.app</code> ファイルが存在すれば
それが読み込まれ、電子ブック形式の appendix が生成されます。
<code>catalog.app</code> がなく、代わりに <code>catalogs.app</code>
存在すればそれが読み込まれ、EPWING 形式の appendix が生成されます。
(<code>catalogs.app</code><code>catalog.app</code> なければ、エラー
になります。)
<dt><code>-d</code></dt>
<dt><code>--debug</code></dt>
<dt><code>--verbose</code></dt>
<dd>
デバッグ用のメッセージを、標準エラー出力に出力します。
<dt><code>-h</code></dt>
<dt><code>--help</code></dt>
<dd>
ヘルプメッセージを標準出力に出力して、終了します。
<dt><code>-n</code></dt>
<dt><code>--no-catalog</code></dt>
<dd>
カタログファイル (<code>catalog</code> および <code>catalogs</code>) を
生成しません。
このオプションは、書籍と appendix を同じディレクトリに重ね合わせる際に
有効です
(詳しくは
<a href="#merge-appendix">「appendix と CD-ROM 書籍の重ね合わせ」</a>
を参照のこと)。
<dt><code>-o <var>ディレクトリ</var></code></dt>
<dt><code>--output-directory <var>ディレクトリ</var></code></dt>
<dd>
出力先のディレクトリを指定します。
このオプションを省略すると、カレントディレクトリ (<code>.</code>) に
出力します。
ディレクトリが存在しなければ、自動的に生成されます。
<dt><code>-t</code></dt>
<dt><code>--test</code></dt>
<dd>
ファイルを出力しません。
入力ファイルを読み込んで、内容のチェックだけを行います。
<dt><code>-v</code></dt>
<dt><code>--version</code></dt>
<dd>
バージョン番号を標準出力に出力して、終了します。
</dl>
</body>
</html>

View file

@ -0,0 +1,30 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="ebutils.css">
<link rev="made" href="mailto:m-kasahr@sra.co.jp">
<title>ebfont コマンド</title>
</head>
<body>
<p>
[<a href="ebfont.html">前へ</a>] [<a href="ebfont-02.html">次へ</a>] [<a href="ebfont.html#toc">目次</a>]
</p>
<hr>
<h2><a name="introduction">はじめに</a></h2>
<p>
<code>ebfont</code> コマンドは、CD-ROM 書籍の外字のビットマップデータを
読み込み、それを指定された画像形式に変換し、ファイルに書き出します。
<code>ebfont</code> は EB ライブラリを使用しており、ライブラリと一緒に
配布されています。
</p>
<!-- ================================================================ -->
<hr>
<p>
[<a href="ebfont.html">前へ</a>] [<a href="ebfont-02.html">次へ</a>] [<a href="ebfont.html#toc">目次</a>]
</p>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more