mytool
is a
my
map file manipulation program in the yudit distribution.
It can generates so-called binary nbit (
my
) map file that can map any
sequences of bytes into any sequences of bytes. These sequences
of bytes can be grouped into 1,2,4 and 8 bytes long words.
The input sequence length may be different from the matched sequence
length. 'i / 'n -> 'b specifies that the word 'in' produces 'b' but
only the 'i is consumed from the input buffer.
It can also generate a so-called
binary umap
file, that maps 8 or 16 bit single words into 16 bit single words and it
contains the reverse map too.
It can also disassemble the input map and produce a
mys
source file.
The input can be a binary umap file, a
my
file,
mys
file
a
uni
and
a kmap file for yudit. It is recommended that all kmap files use the
new
mys
format because it gives more freedom to define the mapping.
The yudit distribution
has a simple document
yudit/doc/my.doc
on the binary map formats, and a source file example file
yudit/mytool/my/example.mys
please refer to this for more details.
OPTIONS
-info
prints out a small information on the current map.
-test
lets you test the map interactively.
-showkeys
show alls the keys in the map file.
-encode
builds a state machine in the encoding part of the map file. The
resulting map file can be written to disk with the
-write
option The resulting
my
files can contain state machines to speed-up conversion. A state machine
based
my
file can manifest 10%-70% performance improvement, so it may be desirable
for encoding
fontmaps.
For
fontmaps
the
bumap
format might be better suited where only one character and not a sequence
of characters need to be mapped.
-decode
builds a state machine in the decoding part of the map file.
-strip
strips off the state machines from the map files.
The
-write
option can be used to save the new map file.
-benchmark
option performs a simple benchmark test on the map file, to compare
speed of simple, state machine based and binary map based map files.
-nocomment
option strips all comments from an input source file of format
mys kmap uni.
It does not strip comments from a binary file.
-name new-name
assigns a name to the map file.
-comment new-comment
assigns a comment to the map file.
-type new-type
assigns a map file a distinctive type, that can be
kmap
or
fontmap
but it is only informative. Keymaps can be used as fontmaps and
vice versa.
-write output-file
writes the data into an output file.
mytool
never modifies the original file. All modifications should be explicitly
saved with the this option.
Never specify the same file for input and output.
-my input-file
load a binary map file. Only one of this option can be specified.
-mys input-source-file
load a source file.
-rmys input-source-file
load a source file and reverse it - make encoding from decoding and
vice versa.
-kmap input-source-file
load a source file in kmap format.
-rkmap input-source-file
load a source file and reverse it - make encoding from decoding and
vice versa.
-uni:l,u input-source-file
load a source file in Unicode Consortium format. This format has
the local code in column l, and unicode in column u. The numbering of
columns start from 0.
-runi:l,u input-source-file
load a source file in Unicode Consortium format and reverses it. Make
encoding from decoding and vice versa.
-8
option can be used with the
-uni
or
-runi
options. It specifies that the input is 8 bit and not 16 bit.
-high
option can be used with the
-uni
or
-runi
options. It specifies that the key should be or'ed with 0x8080.
-low
option can be used with the
-uni
or
-runi
options. It specifies that the key should be and'ed with 0x7f7f.
-convert output-file-format
converts the map file to a format. It is useful only when combined
with
-write
otion.
The possible formats are
my -binary, mys -source, myc -my-c-source, umap -umap-c-source, bumap -binary-umap
formats.
For maps where only a single 8 or 16 bit local code should be converted
into 16 bit unicode and vice versa, the umap file formats are recommended.
The c-source files are provided so that you can inlucde a full map into
the c program.
DIAGNOSTICS
.Bmytool
prints out an error message and exits with a non-zero status on error.
If there is no error the exit status is zero.