home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
epm603a.zip
/
EBOOKE.ZIP
/
EBOOKIE.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1993-03-29
|
94KB
|
3,835 lines
ΓòÉΓòÉΓòÉ 1. Preface ΓòÉΓòÉΓòÉ
This document describes the features and function of EBOOKIE2 version 2.2, a
tool for editing tagged files. It supports the following tag languages:
o BookMaster version 2 and 3
o GML Starter-Set release 3.2
o FOILS5 version 5.3
o APAFOIL release 2.1
o IPF of OS/2 version 1.2 and above.
EBOOKIE2 is based on the "E" family of editors, and is available for all
flavors of "E" (E3 for DOS, EOS2 for OS/2 full screen sessions, and EPM for the
OS/2 Presentation Manager).
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéNote Γöé
Γöé Γöé
Γöé Γöé
ΓöéA version of EBOOKIE for E3, the DOS version of the E Γöé
Γöéeditor, is available as EBOOKIE PACKAGE on PCTOOLS. Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ 1.1. Related Manuals ΓòÉΓòÉΓòÉ
The following manuals contain additional information about the "E" editors:
o The E3 Editor User's Guide
available as E3 SCRIPT in the E3 PACKAGE on the PCTOOLS disk.
o The E OS/2 Editor User's Guide
available as EOS2 SCRIPT in the EOS2 PACKAGE on the OS2TOOLS disk.
o The EPM Editor User's Guide
available as EPM SCRIPT in the EPM PACKAGE on the OS2TOOLS disk.
The following manuals have been used during the implementation of EBOOKIE2:
o BookMaster User's Guide (SC34-5009-02)
o BookMaster Creating Named Styles (SC34-5008-03)
o Generalized Markup Language Starter Set Reference Release 3.2 (SH20-9187-05)
o FOILS5 Version 5.3 Language Reference
o APAFOIL Release 2.1 Quick Reference Summary
o OS/2 Version 1.2 Programming Guide (PN 00F8833)
ΓòÉΓòÉΓòÉ 1.2. Acknowledgements ΓòÉΓòÉΓòÉ
Special thanks to Erwin Uit de Bos from IBM Nederland for his assistance during
the transition from the EGML package to EBOOKIE, Mike Temple from IBM U.S.A.
for his BookMaster help support, numerous appenders of the EBOOKIE FORUM on
IBMPC for keeping me busy, and my wife Maria for her patience...
ΓòÉΓòÉΓòÉ 1.3. About EBOOKIE2 ΓòÉΓòÉΓòÉ
EBOOKIE2 has been developed in various stages. The first incarnation of the
tagged-file support on PCTOOLS was called "EGML", and supported GML Starter-Set
tags only. Then came "EBOOKIE" and "EBOOKIE2" (for the OS/2 family of the E
editors), which supported at first BookMaster, then other tagged files like GML
Starter-Set, FOILS5, APAFOIL, and IPF. The current implementation of variable
tag delimiter characters allows EBOOKIE to be used for all kinds of tagged
files, as long as a tag definition file is written for the tag language. For
example, this allows the implementation of DTL (Dialog Tag Language), a tag
language which is used by the SAA Dialog Manager. This language does not use
the same tag-delimiters (":"to start a tag, "." to end it) as for instance
BookMaster, the tags are enclosed within "<" and ">" characters as defined in
SGML, the ANSI standard for tagged files.
Note: Although EBOOKIE supports various tag-languages, this document uses
BookMaster tags for most of the examples. This is mainly because most of
the users of EBOOKIE currently use it for editing BookMaster or GML
Starter-Set documents.
ΓòÉΓòÉΓòÉ 2. What EBOOKIE Does For You ΓòÉΓòÉΓòÉ
The EBOOKIE package allows you to easily edit tagged files with the "E" family
of editors. Tags start with a one-character delimiter, and end with a
one-character delimiter. Those tag-start and tag-end characters, together with
all tags and their parameters, are defined in so called "tag definition files".
EBOOKIE includes tag definition files for the following tag languages:
o BookMaster version 2 (as described in: SC34-5009-02 BookMaster User's Guide,
and SC34-5008-03 BookMaster Creating Named Styles).
o GML Starter-Set (as described in: SH20-9187-05 Generalized Markup Language
Starter Set Reference Release 3.2).
o FOILS5 (as described in: FOILS5 Version 5.3 Language Reference).
o APAFOIL (as described in APAFOIL release 2.1 Quick Reference Summary).
o IPF (as described in: PN 00F8833 OS/2 Version 1.2 Programming Guide
The features include:
o Tag checking. If the entered text is not a valid tag the tag-start character
is automatically replaced by a variable defined for the current tag language.
For example: BookMaster uses a colon (":") to start a tag. If you type an
invalid tag (like ":xxx") the colon is replaced by the variable "&colon.".
This feature is configurable, and can be turned off.
o Adding of the required and optional parameters. The required parameters are
always inserted into your text, and the cursor is positioned in the correct
place (usually the first parameter).
Optional parameters are only displayed if you press the "space" bar. When you
press the "enter" key or the "tag-end" character, the optional parameters are
not inserted into your text.
There are two stages of optional parameters, the "common", and "all"
parameters. The "space" key expands only the common parameters, the "c_space"
key in EPM, or the "c_enter" key in EOS2 and E3, expand all parameters.
o Automatic tag-structure creation. If a tag requires additional tags, like
end-tags, they are inserted into your text.
o Free editing. Tags can be entered anywhere in the text. EBOOKIE positions the
tag in the correct location (for instance, some tags must start in column
one).
o The margins are changed to allow only 70 character per line, and
word-wrapping is turned on. This allows you to type continually, without
worrying about line ends. The number of characters per line is configurable.
o Tabbing is set to tab one word at a time.
o Dynamic margins. If you enter text you usually want to have the margins set
to something which allows you to see the entire line without scrolling to the
right. However, some language constructs like ":cgraphic." or ":xmp." require
wider margins. EBOOKIE checks for such language constructs and changes the
margins dynamically to "1 254 1" if the cursor is between tags which require
other margins.
Note: This feature is not perfect. It would require a big effort to
intercept all keys and commands which change the position of the
cursor within the file ("find" for example). It might therefore
happen, that the margins are set incorrectly. Because of this, and
because of the performance of the feature (there is a noticeable delay
when you press the page up/down keys), it is not in the default
configuration. If you want to activate this feature refer to Changing
the Dynamic Margins.
o "Remember tag" facility to assign a commonly used tag to a keystroke (alt_2).
Every tag may define a tag or text which is assigned to this key. This is
implemented for all tags which use the ":li" tag, like ":ol", ":sl", ":ul",
etc.
o "Boilerplate" facility to pull text into your document by typing a tag. This
feature is used to create default document layouts.
o Full configurability of the tags. The parameters, and the formatting results
can be modified with up to 9 additional user-defined tag definition files.
o Replacement of keys with symbols. In BookMaster for example, if you type the
"\" key, the variable "&bsl." is inserted into your text. All ASCII codes
from X'01' to X'FE' can be re-defined in EPM or EOS2, in E3 you can only
define symbols for the codes from X'21' to X'FE'. You may use the command
"bkmsym" to replace all special characters of your document with the symbols
defined in the symbol table.
Different symbol tables are used depending on the current codepage and tag
definition file. EBOOKIE supplies two symbol tables for BookMaster, one for
codepage 850, and one for codepage 437. There are no symbol tables supplied
for other tag languages. However, you may create your own symbol files
following the procedure in Changing the Symbol Definition File.
o User-exits after the processing of the "enter", "page-up", "page-down", "up",
and "down" keys. Please note that this feature is designed for power users
who want to write their own E macros.
o Index creation. You may mark a block of text and press the "alt_i" key, and
the index tags are created for you. Or you just move the cursor under a word
and press "alt_i" and this single word is put in the index.
o Help for all BookMaster tags and their attributes. You move the current
writing position under a tag or tag attribute and press the "alt_h" key and
you will be presented with the help dialog (in EPM) or a new file in your
ring (all other implementations of "E") which contains the help information.
o Edit imbedded files. If you position the cursor at a line which contains a
".im", ".config" or ".setup" macro, the file is pulled in the ring.
ΓòÉΓòÉΓòÉ 2.1. Starting the Tag Support ΓòÉΓòÉΓòÉ
The support is started automatically under the following conditions:
1. The EBOOKIE footprint (the character string ".* EBOOKIE" together with the
name of one or more tag definition files) is found. This flag is
automatically created, and must be somewhere at the beginning of the file,
but not necessarily in the first line, to allow other tools to occupy the
first line.
2. The extension of the file is SCR, BKM, SCT, FOI, IPF, SCRIPT, or STYLE. The
file extensions can be changed by using the procedure listed in Changing
the Default File Extensions.
3. A valid tag is found in the first 100 lines of the file. This type of
checking is optional, and is not included in the standard configuration.
If none of the above methods result in starting the tag support, there is a
command "bookie" supplied as a last resort. This command starts the support,
regardless of the file extension or the findings of the tag-checking
initialization function. Refer to Additional Commands and Keys for more
information about the "bookie" command.
1. On slow machines (like my XT at home) searching of the first 100 lines
results in a slight delay when any file is loaded into the editor.
Therefore this feature is not included in the default configuration. Refer
to Changing the Number of Lines Searched for a description of how include
this feature.
2. EBOOKIE tries its best to keep the environment of non-tagged files clean.
But only the implementation of EOS2 and EPM allow this to a full extent.
For example, in E3 the margins are set for all files in the ring. EBOOKIE
resets the margins and tabs to the configured default when a file which
requires other language assist support is moved to the active position in
the ring. This "feature" creates only one problem: if you have changed the
tabs or margins manually, they are reset to the default value. Refer to
Margin Changes in E3 for a way to force EBOOKIE not to change the margins.
ΓòÉΓòÉΓòÉ 2.2. Additional Commands and Keys ΓòÉΓòÉΓòÉ
EBOOKIE includes the following additional "E" commands and keys:
o bookie
o bookief
o bkmattr (optional)
o bkmsym (optional)
o bkmdebug (optional)
o alt_1
o alt_2
o alt_i (optional)
o alt_h (optional)
o ctrl_h (optional)
If you are using EPM the macro creates an entry in the action bar called
"Ebookie". You may use all commands from there too.
ΓòÉΓòÉΓòÉ 2.2.1. The "bookie" Command ΓòÉΓòÉΓòÉ
The "bookie" command can be used to turn the formatting on or off. The command
bookie on
turns the formatting support for the current file on, the command
bookie off
turns the support off.
ΓòÉΓòÉΓòÉ 2.2.2. The "bookief" Command ΓòÉΓòÉΓòÉ
The "bookief" command allows you to switch to a different set of tag definition
files after the support has been started. This might be useful in environments
where files using different tag languages are edited. You may specify up to 10
definition files with this command to include your personalized tag definition
files. Those definition files are concatenated, and used concurrently. Please
note that duplicate definitions of tags are allowed, but the definitions in the
last file in your list override the definitions in previous files. For a
description of the format of the tag definition file refer to Changing the Tag
Definition File.
This command also inserts the name of the tag definition files into the current
file. When you save the file, and edit it again, the support is automatically
started using those tag definition files.
Let's make one example. The default tag definition file is for BookMaster, but
you want to edit a file which contains FOILS5 tags. When you edit a tagged
file, you will notice the EBOOKIE "footprint" somewhere at the beginning of
your file (usually in the first line):
.* EBOOKIE (BKMTAGS.DEF)
This means that BookMaster formatting is used for this file. Now you enter the
command:
bookief foils5.def
in the command line. This changes the footprint to:
.* EBOOKIE (FOILS5.DEF)
and FOILS5 formatting is turned on for this file. When you save this file, and
edit it again, the formatting is automatically set for FOILS5.
ΓòÉΓòÉΓòÉ 2.2.3. The "bkmattr" Command ΓòÉΓòÉΓòÉ
This command is only available in EPM, and is optional. It is not available by
default. If the attribute support is configured (refer to Attribute Support for
EPM for more information about the configuration and installation of the
support), the "bkmattr" command searches for all tags in the file, and
highlights them. Please note that searching for all tags in a larger file may
take some time. All new tags typed are highlighted.
The attribute support can be switched off with the command:
bkmattr off
ΓòÉΓòÉΓòÉ 2.2.4. The "bkmsym" Command ΓòÉΓòÉΓòÉ
If the symbol support is configured (refer to Replacing Keys with BookMaster
Symbols for configuration instructions) and active, this command changes all
occurrences of all special characters in the file or mark to the appropriate
BookMaster symbol. To change the entire file, you have to specify the "all"
parameter, without having set a mark.
ΓòÉΓòÉΓòÉ 2.2.5. The "bkmdebug" Command ΓòÉΓòÉΓòÉ
EBOOKIE has some limited debugging support. If something goes wrong, you may
use the "bkmdebug" command to get some information about the current internal
variables, or trace through the subroutines and look at the parameters. This
command is included in the EOS2 and EPM versions, excluded (because of the
limited macro space) in E3. To include the debugging support refer to Including
the Debugging Support.
The "bkmdebug" command accepts on parameter which can be (minimum abbreviations
shown in upper case):
Parameter Description
On Turns debugging on. All subroutines report the input parameters upon
entry. All messages have to acknowledged with a key. To review the
messages refer to Messages Issued During Debugging.
OFf Turns debugging off.
Trace Turn "echo" on. Refer to the User's Guide of the editor for more
information about the "echo" command.
Endtrace Turns "echo" off.
Display Adds about a page of information about internal variables into your
document (as script comments). To interpret the debugging information
refer to Debugging EBOOKIE.
ΓòÉΓòÉΓòÉ 2.2.6. The "alt_1" Key ΓòÉΓòÉΓòÉ
If you are editing a file which imbeds other files you can position the cursor
on the line which contains the ".im" or ".setup" macro, and the file is pulled
into the ring. If the file is a PC file it is searched in the following
directories:
1. The directory where the current file is located.
2. Along the EPATH.
3. Along the PATH in DOS, or DPATH in OS/2.
The extension of the file computed in the following manner:
1. If the imbed macro does not specify a file type, .SCR is assumed.
2. If the imbed macro contains a file type (like .im (myfile foils) the first
three letters from the file type are used as extension.
If the current file is a host file, the imbedded file will be taken from the
host. The file type is SCRIPT if the ".im" macro didn't specify a file type.
The file mode is the same as the file mode of the current file.
ΓòÉΓòÉΓòÉ 2.2.7. The "alt_2" Key ΓòÉΓòÉΓòÉ
This key allows you to insert a sequence of characters, usually tags, into your
file. The tags inserted depend on the definition in the tag definition file.
For example, if you started a definition list with the ":dl" tag, the alt_2 key
will generate a ":dt.:dd" line, with the cursor positioned after the ":dt."
tag. If you start an ordered list with ":ol", the alt_2 key inserts a ":li"
tag.
The default text assigned to the alt_2 key is determined by the tag definition
file, usually it is ":p" for paragraph. This default may be changed using the
procedure in Changing the Tag Definition File
ΓòÉΓòÉΓòÉ 2.2.8. The "alt_i" Key ΓòÉΓòÉΓòÉ
If the index support is included (refer to The Index Support), you may use the
"alt_i" key to create an index tag for the word the cursor is under. If you
mark a block of words, all words are included in the index, including all
permutations.
ΓòÉΓòÉΓòÉ 2.2.9. The "alt_h" Key ΓòÉΓòÉΓòÉ
The "alt_h" can be used to get help about the tags and the valid tag attributes
for the currently active tag language. The "Help Manager" is used when you work
with EPM. In E3 or EOS2 EBOOKIE creates an additional file in the ring.
The help facility is included in the default configuration, refer to The Help
Support for configuration options. For the format of the help file for EOS2 and
E3 refer to The Help File.
Note: EPM uses the OS/2 Help Manager to display the help information. This
means that you have to tell the Help Manager where the help files are
located. This is done by setting the "BOOKSHELF" environment variable in
the file C:\CONFIG.SYS. For example:
SET BOOKSHELF=D:\EBOOKIE;
would tell the Help Manager to search for the help files in the directory
D:\EBOOKIE.
Usually you have already a BOOKSHELP variable in your CONFIG.SYS, in this case
just add the directory to the environment variable.
ΓòÉΓòÉΓòÉ 2.2.10. The "ctrl_h" Key ΓòÉΓòÉΓòÉ
This key acts exactly the same way as the "alt_h" key in EOS2 and E3. If you
use EPM it does not use the Help Manager to display the help text, it uses the
same method as E3 or EOS2, that means the help text is displayed as a separate
file in the ring.
ΓòÉΓòÉΓòÉ 2.3. Formatting Examples ΓòÉΓòÉΓòÉ
Tags can be entered anywhere in the text, but most of the tags usually appear
only at specific places. Basically there are three types of tags:
1. Tags that must start in the first position of a line, which don't have any
text after the end of the tag (like ":body.").
2. Tags which must start in the first position of a line which might have some
text after the tag (like ":p.").
3. Tags which can be anywhere in the text (like ":hdref.").
Additionally, each tag might have some properties like:
o required parameters
o optional parameters
o tag constructs, where one tag requires a series of other tags (like
end-tags).
EBOOKIE supports all three types of tags in combination with all properties the
tags might have. You can type tags anywhere in the text, even in the wrong
places. The support determines the type of the tag, and positions the tag in
the text depending on the type.
ΓòÉΓòÉΓòÉ 2.3.1. Type 1 Tags ΓòÉΓòÉΓòÉ
Type 1 tags are always moved to the beginning of a new line. If you enter the
tag somewhere in the text, it is removed, and the text is reflowed.
If the text is:
:p.This is some text.
and a ":xmp." tag is typed anywhere on the line, it always results in:
:p.This is some text.
:xmp.
:exmp.
ΓòÉΓòÉΓòÉ 2.3.2. Type 2 Tags ΓòÉΓòÉΓòÉ
Type 2 tags are also moved to a new line, but depending on where you have typed
of the tag within the line, the results are different. If you enter the tag in
an empty line, it is left there. If you enter the tag at the end of a line, it
is moved to a new line like:
:p.This is some text.:p.
results in:
:p.This is some text.
:p.
If you enter the tag at the beginning of the line, it is inserted in this
place.
This is some text.
Now the ":p." tag is inserted at the beginning of the line. This results in:
:p.This is some text.
If you insert the tag in the middle of a line, the line is split at the tag
position, and the remainder is moved after the tag:
:p.This is a sentence. Another sentence, should be a paragraph.
Now the cursor is moved to the beginning of the word "Another", and a tag is
entered:
:p.This is a sentence. :p.Another sentence, should be a paragraph.
This results in:
:p.This is a sentence.
:p.Another sentence, should be a paragraph (now it is).
ΓòÉΓòÉΓòÉ 2.3.3. Type 3 Tags ΓòÉΓòÉΓòÉ
Type 3 tags can be anywhere in the text. Therefore they are expanded exactly at
the position where they are entered. If the text is:
:p.This is some text.
and a ":hdref" tag is inserted after the word "some" it results in:
:p.This is some :hdref refid=. text.
If the tag has an end-tag, the end-tag is always positioned at the end of the
line.
:p.This is some text which is :hp1
results in:
:p.This is some text which is :hp1.:ehp1.
If the tag is inserted in the middle of a line, the remainder of the line to
the right of the tag is enclosed within the start- and end-tag. One example:
:p.This is a line.
Now you position the cursor at the beginning of the word line, and ":hp1." is
entered. This results in:
:p.This is a :hp1.line.:ehp1.
If this type of tag is inserted at the beginning of the line, the entire line
is imbedded between the tags.
ΓòÉΓòÉΓòÉ 2.3.4. Tag Parameters ΓòÉΓòÉΓòÉ
Most of the tags have attributes which control their function. Some of the
attributes are required, some are optional. Usually you don't need all
parameters, therefore EBOOKIE has three stages of tag expansion:
1. Required parameters
2. "Usual" parameters
3. All parameters.
All tags have a defined start character (":" in BookMaster), and a defined end
character ("."). In addition to the defined tag-end character, you may also use
the "enter" key to end a tag.
ΓòÉΓòÉΓòÉ 3. Installation ΓòÉΓòÉΓòÉ
The installation of EBOOKIE consists of a few easy steps. First you have to
download and install the editor, then the EBOOKIE2 PACKAGE. Finally you have to
include the support into your editor definitions, or you just copy the supplied
default installation files. These steps will be different, depending on the
version of the editor you are using.
The following steps are common for all flavors of the editor:
1. Download the version of the editor most suitable for your environment, if
you have not done so already. EBOOKIE has been tested only with the latest
versions of the editor, which are:
o EPM Version 5.50, available as an "Applet" in OS/2 2.0.
o EPM Version 5.51 (EPM PACKAGE from OS2TOOLS), also available outside IBM
via OS2EWS.
o EPM Beta Version 5.60
o EPM Beta Version 6.00
o EOS2 Version 4.13A (EOS2 PACKAGE from OS2TOOLS)
Don't forget to download the file EMACROS FLSBIN, it contains the required
"E" macros. The macros are also available in the EPM and EPS2 package.
Unload the macros with LOADRAM2.EXE (found on OS2TOOLS)
2. Download EBOOKIE2 PACKAGE from OS2TOOLS. You may use any downloading method
suitable for your type of terminal emulation. I suggest you download all
package files to the directory where your editor resides.
3. Run the EBOOKIE2.EXE to expand it.
4. You may now delete the file EBOOKIE2.EXE.
ΓòÉΓòÉΓòÉ 3.1. Installing EBOOKIE2 With EPM ΓòÉΓòÉΓòÉ
The following steps describe the procedure to install EBOOKIE into EPM. You
have two options:
1. The default installation.
If you are using EPM version 5.51 or 5.50 (supplied as an "Applet" in OS/2
2.0), and no add-on packages or private configuration files, you may
install EBOOKIE by just renaming one file and issuing one EPM command.
Please note that the default installation is not available if you use any
beta releases of EPM.
2. The extended installation.
If you are using a beta version of EPM, or you want to re-configure EBOOKIE
to your personal preferences, you have to create a new version of the .EX
files.
ΓòÉΓòÉΓòÉ 3.1.1. The Default Installation ΓòÉΓòÉΓòÉ
The default installation is the easiest way to use EBOOKIE, you just have to
rename one file, and issue one EPM command.
1. Switch to the directory where your editor is installed, for example:
d:
cd \editor
2. Rename one of the BKEYS.??? files to BKEYS.EX.
o If you are using EPM 5.50 rename the file BKEYS.550 to BKEYS.EX.
o If you are using EPM 5.51 rename the file BKEYS.551 to BKEYS.EX.
3. Start EPM for any file (for example TEST.SCR) and press CTRL-I to get an
EPM command prompt.
4. Type the command "PROFILE ON" in the command entry field.
5. Press the Enter key to execute the command.
6. Save the options by selecting "Options->Save options" from the EPM action
bar.
7. Exit EPM by pressing F3.
You may now verify the installation using the procedure in Verifying the
Installation.
ΓòÉΓòÉΓòÉ 3.1.2. The Extended Installation ΓòÉΓòÉΓòÉ
If you are using any add-on packages for EPM, or if you want to change some
defaults of the editor or EBOOKIE you have to use the extended installation
procedure.
EPM allows you to define EBOOKIE as external module. This has the advantage
that EBOOKIE doesn't use storage out of the primary macro file (EPM.EX, or
EXTRA.EX) which is limited to 64KB.
If you want to include EBOOKIE as an external module you have to add the
following line to your MYCNF.E:
WANT_EBOOKIE = 'DYNALINK'
Then compile EPM, EXTRA, and BKEYS.
If you want EBOOKIE to be included into EPM, which as the advantage of faster
loading, you have to add the following line to your MYCNF.E:.
WANT_EBOOKIE = 1
Then compile EPM and EXTRA.
ΓòÉΓòÉΓòÉ 3.2. Installing EBOOKIE2 With EOS2 ΓòÉΓòÉΓòÉ
To install EBOOKIE with EOS2 you have to set some configuration options, and
compile the editor and EBOOKIE:
1. Edit your MYCNF.E (or create a new one), and add the following line:
WANT_EBOOKIE = 'DYNALINK'
2. Rename the file MYMAIN.413 to MYMAIN.E, or add the contents of MYMAIN.413
to MYMAIN.E.
3. Compile the editor and EBOOKIE:
ET E
ET BKEYS
You may now test your installation using the procedure outlined in Verifying
the Installation.
Note: You may also include EBOOKIE in your main EOS2 definitions, but i don't
recommend it, because you only have 64KB in E.EX, and usually you are running
short of space.
ΓòÉΓòÉΓòÉ 3.3. Verifying the Installation ΓòÉΓòÉΓòÉ
You may now try EBOOKIE. Just edit a file with the command:
epm test.scr
and you should receive the following message from EBOOKIE:
Initializing tag support, creating tag index, please wait...
This means that EBOOKIE is active and correctly installed. Please note that you
will see this message only once, unless you change the tag definition files.
You may also notice that the first line of the file now contains the EBOOKIE
"footprint", a line which looks like:
.* EBOOKIE (BKMTAGS.DEF)
This means that EBOOKIE is active for this file, and that you are using the
definitions for BookMaster, which are located in the file BKMTAGS.DEF. When you
save this file, and edit it again, EBOOKIE will know how to process it.
ΓòÉΓòÉΓòÉ 4. EBOOKIE PACKAGE Contents ΓòÉΓòÉΓòÉ
The EBOOKIE package consists of the following files:
EBOOKIE PACKAGE The package header file.
EBOOKIE DOCUMENT A short description, and installation instructions
EBOOKIE EXEBIN The executables and the data files. This file has to be
downloaded in binary as EBOOKIE.EXE and processed by
simply running it. All files should go into the
directory where EPM resides. It expands to the
following:
BKEYS.E The key processing macro.
MYCNF.XMP An example of a user configuration file. This file
can be used as an example of your MYCNF.E file and
contains basically my private setup of E3, EOS2, and
EPM.
MYMAIN.413 You need this file only if you want to use EBOOKIE
with EOS2.
BKEYS.550 The key processing macro compiled for EPM version
5.50.
BKEYS.551 The key processing macro compiled for EPM version
5.51.
APAFOIL.DEF A tag definition file for APAFOIL. (APAFOIL is a
foils package available on TXTTOOLS).
APAFONT.SKL The ":font." tag of APAFOIL.
APAFSET.SKL Stuff which is included if you type the ":foilset."
tag.
APAGDOC.SKL A sample foils document layout for APAFOIL. It is
included when you type the ":gdoc." tag.
BKMTAGS.DEF This file contains all BookMaster tags with the
defaults.
BKMTAGS.437 A symbol file for BookMaster and codepage 437 (the
"PC" codepage).
BKMTAGS.850 A symbol file for BookMaster and codepage 850 (the
"international" codepage).
BKMTAGS.INF The help file for BookMaster tags used under EPM
(the alt_h command). You may delete this file is you
don't use EPM.
BKMTAGS.HLP The help file for BookMaster tags used by the Ctrl_h
(help) command. This file is required if you use
EOS2 or E3, and optional if you use EPM (where you
may use the alt_h command to get help).
EBOOKIE.INF The online version of the EBOOKIE User's Guide.
FOILSDOC.SKL A sample foils document layout which is included
when the ":gdoc." or ":foildoc" tag is typed.
FOILS5.DEF This file contains all FOILS5 tags in GML notation
with the defaults.
GMLTAGS.DEF This file contains all GML Starter-Set tags with the
defaults.
IPFTAGS.DEF This file contains all GML Starter-Set tags with the
USERDOC.SKL A sample document layout which is included when
BookMaster formatting is selected, and a :userdoc
tag is typed.
ZDOCPROF.SKL A file which contains the ":zdocprof." tag
definition.
ZSTYLE.SKL A file which contains a BookMaster style template.
ΓòÉΓòÉΓòÉ 5. Changing the Defaults ΓòÉΓòÉΓòÉ
EBOOKIE is designed for great flexibility. Things that can be tailored include:
o the tag definition files, where you can:
- define the tag delimiters, and end-tag characters
- define the tag you want to have inserted when you press the "alt_2" key
- define the name of the symbol file
- add new tags
- remove tags you don't want to use
- change the defaults of standard tags (required and optional parameters,
cursor position, etc.)
o the name of the default tag definition file(s)
o the number of lines which should be searched if the file extension does not
indicate a tagged file, and the file doesn't contain the EBOOKIE footprint.
o the editing margins
o the dynamic margins feature
o the behavior of the macro when invalid tags are found
o the debugging support
o the user-exits during page-up, page-down, up, down, or enter-key processing
o the symbol support
o the contents of the symbol file
o the parameter expansion of the space key
o the file extensions which trigger the activation of the support
o the attribute support
o the margin changes in E3
o the index support
o the cases of the index entries
o the help support
o the help files
o the BookMaster reference support
o the colors used by the attribute support
o the default codepage for DOS versions below 3.3.
The following chapters describe the procedures to change the various options.
ΓòÉΓòÉΓòÉ 5.1. Changing the Tag Definition File ΓòÉΓòÉΓòÉ
The following section describes how you can change the formatting of every tag.
All tags are defined in tag definition files. EBOOKIE currently supplies five
definition files:
o bkmtags.def for BookMaster
o gmltags.def for GML Starter-Set.
o foils5.def for FOILS5.
o apafoil.def for APAFOIL.
o ipftags.def for IPF.
You should not change those files. If you want to add some tags, or change the
defaults provided for some tags, you may create you own tag definition file.
These files consists of two parts. The first line is the "configuration" line,
the rest of the file describes the tags.
In the configuration line you can define:
o The tag-start delimiter (":" in BookMaster, GML Starter-Set, IPF, and FOILS5,
"<" in SGML).
o The tag-end delimiter ("." in BookMaster, GML Starter-Set, IPF, and FOILS5,
">" in SGML).
o The end-tag header (":e" in BookMaster, GML Starter-Set, IPF, and FOILS5,
"</" in SGML).
o The default for the "alt_2" key.
o The variable which should be used to replace the tag-start character if the
typed text is not a valid tag.
o The name of the symbols file.
The format of this line is:
* EBOOKIE tag_start= tag_end= end_tag= a_2= invalid= symbols=
The parameters have the following meaning:
tag_start The character which defines the start of a tag. In BookMaster, GML
Starter-Set, IPF, and FOILS5, this must be ":".
tag_end The character which defines the end of a tag. In BookMaster, GML
Starter-Set, IPF, and FOILS5, this must be ".".
end_tag The character sequence which defines an end-tag. This usually is a
tag_start character followed by one additional character. In
BookMaster, GML Starter-Set, IPF, and FOILS5 this must be ":e".
a_2 The key sequence (usually a tag) which is inserted into your text
when you press the "alt_2" key before you have used a tag which
assigns something to this key. The supplied default for BookMaster,
GML Starter-Set, IPF, and FOILS5 is ":p".
invalid The variable which should be inserted in the text instead of the
tag_start character when an invalid tag has been typed. In BookMaster
this is "&colon.", in GML Starter-Set and FOILS5 this is "&gml.".
symbols The name of a file without extension which contains the symbol
definitions (refer to Changing the Symbol Definition File for the
layout of this file). The extension depends on the codepage which was
in use at the time the editor was started.
1. The variables may be specified in any order.
2. The keywords must be in lower case, exactly as shown above.
3. The keywords must be immediately followed by an equal sign ("="), no space
allowed. (For example: "a_2=:p." is correct, "a_2 =:p." is not valid).
4. The variables:
o tag_start
o tag_end
o end_tag
must be defined in the first (the "primary") definition file. They are
ignored when they are specified in an additional tag definition file.
5. If one of the variables is left blank, or is not defined in the primary
definition file, a default is assumed. For BookMaster and IPF those
defaults are:
* EBOOKIE tag_start=: tag_end=. end_tag=:e a_2=:p. invalid=&colon. symbols=bkmtags
The defaults for GML Starter-Set are:
* EBOOKIE tag_start=: tag_end=. end_tag=:e a_2=:p. invalid=&gml. symbols=
The defaults for FOILS5 and APAFOIL are:
* EBOOKIE tag_start=: tag_end=. end_tag=:e a_2=:li. invalid=&gml. symbols=
6. To override the defaults you have to create an additional tag definition
file, and set the variables accordingly.
7. If the configuration line is omitted, EBOOKIE uses the shown defaults.
The second part of the tag definition file contains one line for each tag. The
format of the tag definition lines is shown below.
:tag flag required + common + all || after || before || a_2
where:
tag The tag, starting with the tag-start character, but without the
tag-end character.
The following parameters are optional. If they are not present, the support
assumes that it is a type 1 tag. Refer to Type 1 Tags for formatting
information.
flag This flag determines the formatting. It corresponds with the types of
tags defined in Formatting Examples.
1 The tag is always moved to a new line. If there is text after the
tag, the line is reflowed.
2 The tag is always moved to a new line. If there is text after the
tag, it is moved with the tag, and positioned after the tag.
3 The tag, and the optional end-tag are supposed to be on the same
line. If there is text to the right of the tag, it is imbedded
within the start and end-tag. If there is no end tag, the tag
remains where it is. If the tag was entered on a new and empty
line, the end-tag is created on a separate line, and one empty
line is created in the middle between the tags.
4 The tag is always inserted in a new line (same behavior as if the
flag is "1"). The data defined after the first "||" delimiter
represent a file name. This file is inserted in the lines
following the tag. The path to the file is defined in the
E(PM)PATH, the PATH (in DOS) or the DPATH (in OS/2).
5 Same as if the flag is "4", except that the tag itself is not
inserted into your text. This can be useful to include standard
text or tag constructs into your document.
- This flag can be used to remove a tag from the list. If you want
to disable a tag defined in the master definition file, you just
have to define the tag in your user-definition file and set the
flag to "-".
Note: If you add 10 to the flag, the tag will not be moved to column
1, it will stay in the column where it has been typed.
required The required parameters. They are always inserted in the text.
+ The delimiter to the common optional parameters.
common The common optional parameters. They are inserted only when you press
the space bar.
+ The delimiter to all optional parameters.
all Additional parameters. They are inserted only when the user has
pressed the "c_space" key in EPM, or the "c_enter" key in EOS2 and
E3.
|| First delimiter (double vertical line).
after Those tags are inserted in the line(s) after the starting tag. A "\"
is interpreted as a carriage return. If the flag is 4, this parameter
contains the name of a file which is inserted after the tag. Look at
the definition of the :userdoc. tag in the file BKMTAGS.DEF for an
example. If the text starts with a percent sign ("%"), it is
considered to be a file name which will be included exactly at this
point (example: "%filename.ext", no space between the percent and the
file name).
|| Second delimiter (double vertical line).
before Those tags are inserted in the line(s) before the starting tag. A "\"
is interpreted as a carriage return. The cursor can not be positioned
in this area. If you want to pull a file into your text, you have to
start the file name with a percent sign.
|| Third delimiter (double vertical line).
a_2 Text or tags which will be inserted, and interpreted when the "a_2"
key is pressed. If the tag ends with a colon, the tag is processed as
if you have pressed the colon key, if it doesn't, the tag is
processed as if the you have pressed the space bar. That means that
the common optional parameters of the tag (if any) are also included
into your text.
The cursor position can be controlled with the "#" or "@" characters. If there
are required or optional parameters, the cursor is always positioned in the
line where the tag is, except the lines which should be inserted after the tag
contain a "@" character to position the cursor. In this case the cursor will
not be positioned in the tag-line, but in the line which contains the "@". If
required parameters are present, the cursor position should be defined on a
required parameter. If no parameters are inserted, the additional tags after
the main tag are checked for the cursor position. The cursor can not be
positioned on text before the tag, and on lines which have been pulled from a
file. If no cursor position can be determined (no "#" or "@" character found),
the cursor is positioned after the ending period of the tag.
To activate your new definitions, you can use the "bookief" command. Please
note that EBOOKIE might have already set the name of the definition files in
your document. You will have to use the "bookief" command for every file you
have edited before. If you want to set the default for all new files, you have
to use the procedure described in Changing the Name of the Default Tag
Definition Files.
If you didn't specify a path, EBOOKIE uses the following search path for the
tag definition files:
1. The "EPATH" in EOS2 and E3, or the "EPMPATH" in EPM.
2. The "DPATH" in EPM and EOS2, or the "PATH" in E3.
ΓòÉΓòÉΓòÉ 5.1.1. Example ΓòÉΓòÉΓòÉ
Let's make one example. The BookMaster definition file "bkmtags.def" defines
the ":dt." tag to do the following:
:dt.:dd.
with the cursor positioned in the middle between the two tags. But you want the
formatting result look like:
:dt.
:dd.
with the cursor positioned after the ":dt" tag, and to assign the tag ":dt." to
the "alt-2" key. You could now change the BKMTAGS.DEF file, but this is not
recommended, because a new version of EBOOKIE would replace this file.
Therefore you should decide to create your own definition file called MY.DEF
with the following contents:
:dt 1 .# || :dd. || || :dt.
and save it in the same directory as BKMTAGS.DEF. Now the only thing you have
to do is to edit a tagged file, and type the command:
bookief bkmtags.def my.def
in the command line. The index will be re-built, and the first line of the file
will be changed to:
.* EBOOKIE (BKMTAGS.DEF MY.DEF)
Do not delete this line. When you save the file, and edit it again, this line
is read, and both tag definition files will be used.
The following example describes the parameter insertion. Let's work with the
":h1" tag. It is defined as:
:h1 1 + id=# + initpg= num= pnkey= stitle= subjart= subject= topicid= topicsel=.
If you type a period, or press the enter key, it expands to:
:h1.
with the cursor after the ending period. If you press the space bar it expands
to:
:h1 id=.
with the cursor before the ending period. Only if you press the c_space key in
EPM, or the c_enter key in EOS2 and E3, it expands all parameters to:
:h1 id= initpg= num= pnkey= stitle= subjart= subject= topicid= topicsel=.
with the cursor positioned after the "id=" parameter. If you want to change the
definition to always display the "id=" parameter, you would have to change the
definition to:
:h1 1 id=# + + initpg= num= pnkey= stitle= subjart= subject= topicid= topicsel=.
The following example shows how to pull one or more files into your text. Let's
assume you want to create a tag called ":mytag." which includes a file before
and after the tag. You could define it as follows:
:mytag 1 req=# + opt= + moreopt=. || after1\%after.fil\after2 || before1\%before.fil\before2
Now let's assume that the contents of the file AFTER.FIL is:
This line comes from the file AFTER.FIL.
and the file BEFORE.FIL contains:
This line comes from the file BEFORE.FIL.
Now the :mytag. tag would produce the following results:
before1
This line comes from the file BEFORE.FIL.
before2
:mytag req=.
after1
This line comes from the file AFTER.FIL.
after2
The cursor would be positioned before the colon in the line which contains the
tag, and inserting would be turned on.
ΓòÉΓòÉΓòÉ 5.2. Changing the Name of the Default Tag Definition Files ΓòÉΓòÉΓòÉ
The default tag definition file is used when you:
o create a new file
o edit a tagged file which has not been edited using EBOOKIE before
o have deleted the "footprint" of EBOOKIE.
To change the name of the default tag definition files you have to do the
following:
1. Edit the file MYCNF.E and add the following line in the "CONST" section:
my_bkm_def_file='tag_definition_files'
where the field "tag_definition_files" contains a list of up to ten files
separated by blanks, for example:
my_bkm_def_file='bkmtags.def my.def'
The first file in this list should be the one which includes all tag
definitions. The other files can be used to override the defaults, or add
non-standard tags.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
2. Now you have to compile the editor. Refer to Compiling the Tag Support for
information about the compiling process.
ΓòÉΓòÉΓòÉ 5.3. Define Definition Files for Specific Extensions ΓòÉΓòÉΓòÉ
When you edit a new file, or a file which hasn't been processed by EBOOKIE yet,
the default definition file name is associated with the file. However, some
times it might be desireable to use a specific definition file for a specific
extension. For example, you want the default definition file to be for
BookMaster, but if the extension is ".FOI" you want the default to be for
FOILS5.
You may associate different default definition files with the extensions of the
file. This is done by modifying the "my_bkm_ext_def=" constant in "MYCNF.E".
To change the name of the default tag definition files you have to do the
following:
1. Edit the file MYCNF.E and add the following line in the "CONST" section:
my_bkm_ext_def='ext=def_file ext=def_file ....'
where "ext=" is the extension, and "def_file" the definition file which
will be associated with this extension. If more than one definition file is
associated with an extension, code the file names between double quotes.
For example:
my_bkm_ext_def='scr="bkmtags.def my.def" foi=foils5.def'
Please note that the definition file name has to include the extension (the
".def" in the above example).
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
2. Now you have to compile the editor. Refer to Compiling the Tag Support for
information about the compiling process.
ΓòÉΓòÉΓòÉ 5.4. Changing the Number of Lines Searched ΓòÉΓòÉΓòÉ
When a file is loaded into the ring, EBOOKIE tries to find out what it should
do with it. First it reads the first lines of the file, as long as they are DCF
comment lines. If one of those lines contains:
.* EBOOKIE (something)
EBOOKIE assumes that it is a tagged file, and uses the information between the
brackets to find the tag definition files.
If no footprint is found, EBOOKIE checks the extension of the file. If the
extension does not indicate a tagged file, EBOOKIE tries to locate a valid tag
within a certain number of lines in the file. And this number of lines can be
configured using the following procedure:
1. Edit the file MYCNF.E
2. Change the line:
my_bkm_search=0
to whatever you think is appropriate. If you specify 0, which is the
default, the file is not searched at all. If you specify a value greater
than zero, a minimum value of 10 is assumed. A reasonable value is 100.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.5. Changing the Margins ΓòÉΓòÉΓòÉ
When the tag support is started for a file, the margins are set to the default
of "1 70 1". If this is not convenient for you, you can change the default
margins with the following procedure:
1. Edit the file MYCNF.E
2. Change the line:
my_bkm_margins='1 70 1'
to whatever you think is appropriate.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.6. Changing the Dynamic Margins ΓòÉΓòÉΓòÉ
As it was said before, the margins are set to a default value, most suitable
for entering text. However, some language constructs might require a different
margin, for example :cgraphic. or :xmp.. A feature of EBOOKIE is to change the
margins dynamically when it finds such tags, and resets it back to the default
when the cursor is leaving the construct. Because this feature has a negative
impact on performance, it is optional. If you want to activate it, you have to
define the tags which trigger the change in margins. Usually this are the
following tags:
o :xmp.
o :fig.
o :cgraphic.
You may add or remove tags from this list. If you want to add some more tags,
please make be sure that:
o they have an end-tag
o are type 1 or 2 tags.
To configure this support you have to do the following:
1. Edit the file MYCNF.E
2. Change the line:
my_bkm_tags_between=''
to:
my_bkm_tags_between=':xmp :cgraphic :fig'
or whatever you think is appropriate.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.7. Changing the Handling of Invalid Tags ΓòÉΓòÉΓòÉ
EBOOKIE checks the tag as it is typed against the list of allowed tags in the
tag definition files. If the tag is not found in the list, the starting colon
of the invalid tag is replaced by the variable defined in the tag definition
file. This should be the normal operation mode. However, if you want to use
non-standard tags, but didn't have the time to include them in a user-tag
definition file, you may change the handling of the invalid tags using the
following procedure:
1. Edit the file MYCNF.E.
2. Change the line:
my_bkm_repl_colon=1
to:
0 Leave the tag as-is, even if the tag is not defined in the tag
definition file.
1 Replace the colon of the invalid tag with the variable "&gml.",
this is the default.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
To achieve the same function, you may also create an additional tag definition
file and insert the following in the first line of this file:
* EBOOKIE invalid=
This doesn't remove the feature from the definitions, but has the same effect.
The advantage of doing it this way is that the removal is tag definition file
specific, the disadvantage is that the size of the macro is not reduced, which
could be an important factor in E3.
ΓòÉΓòÉΓòÉ 5.8. Including the Debugging Support ΓòÉΓòÉΓòÉ
EBOOKIE contains some debugging features, which are inactive by default when
the macro is compiled into the main macro file. If EBOOKIE is compiled as an
externally linkable module, debugging is included by default. If you want to
include or remove the debugging code of EBOOKIE you have to use the following
procedure:
1. Edit the file MYCNF.E.
2. Change the line:
my_bkm_debugging=0
to:
0 No debugging included.
1 Debugging included.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.9. Adding a User-exit to Page-up/down, Up, Down or Enter ΓòÉΓòÉΓòÉ
EBOOKIE allows you to configure a user-exit which is called during page-up,
page-down, cursor-up, cursor-down processing. The name of the routines called
are:
my_page_up()
my_page_down()
my_up()
my_down()
my_enter_key()
They page-up and page-down routines are called before EBOOKIE processes the
request, therefore they must perform the following actions:
1. Do the required function (up or down).
2. Make the new line the "current" line (i.e. the ".line" variable must be set
correctly).
3. Return to the caller.
There are no restrictions for the routine "my_enter_key()", except that it must
return to the caller. This routine is called after EBOOKIE has done its stuff.
To include the user-exit interface you must do the following:
1. Edit the file MYCNF.E.
2. Change the line:
my_bkm_page_up=0
my_bkm_page_down=0
my_bkm_line_up=0
my_bkm_line_down=0
my_bkm_enter=0
to:
0 Don't call the user exit.
1 Call the user exit.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Move all user exits to a file called MYBKMKEY.E. You may either rename
your ".e" file to this name, or create the file MYBKMKEY.E with the
following contents:
include 'the_name_of_your_page_up_macro'
include 'the_name_of_your_page_down_macro'
include 'the_name_of_your_enter_key_macro'
4. Compile the support following the procedure in Compiling the Tag Support.
Your macros will be included automatically.
ΓòÉΓòÉΓòÉ 5.10. Replacing Keys with BookMaster Symbols ΓòÉΓòÉΓòÉ
A feature of EBOOKIE allows you to replace special keys with the corresponding
BookMaster symbols. The name of the file is defined in the tag definition file,
the extension is determined by the current codepage. To remove the support you
have to do the following:
1. Edit the file MYCNF.E.
2. Change the line:
my_bkm_want_symbols=1
to:
0 Don't replace keys with symbols.
1 Replace keys with symbols.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
You may also remove the feature by creating a new tag definition file, where
the first line reads:
* EBOOKIE symbols=
This results the symbol support being deactivated for this set of tag
definition files.
ΓòÉΓòÉΓòÉ 5.11. Changing the Symbol Definition File ΓòÉΓòÉΓòÉ
The symbol definition file is structured into two parts. The first part is only
one line long, and contains all keys which should not be touched. The second
part contains one line for each ASCII code (from X'01' to X'FE'). When the tag
support is started EBOOKIE generates an internal table which contains all
characters for which you have defined a symbol in the second part of the file,
except for those which are listed in the first part of the file. When a key is
pressed on the keyboard, EBOOKIE searches the symbol table. If the keycode is
not found, the character is displayed on the screen without any further
processing. When the character is found, EBOOKIE checks the symbol file (which
is in a hidden file in the ring), and replaces the character with the
appropriate BookMaster symbol. This technique with the "don't touch" table has
been adopted, because you might want to type some keys which do have a
BookMaster symbol associated with it, without replacing it with the symbol when
you type it. For example, the "," character is defined as "&comma.", but
usually you would not want the character to be replaced by the symbol.
If you want to change the symbol file you can go ahead and edit it like any
other file, as long as you don't change the structure or the size of the file.
Do not add or remove any lines of the file.
There are two symbol files supplied with EBOOKIE, one for codepage 850, and one
for codepage 437. Both files are designed to work with BookMaster. The name of
the file is defined in the first line of the tag definition file, the extension
depends on the active codepage at the time the editor was started.
Usually you would only add or remove some characters from the first line, which
contains the "don't touch" characters. After you have edited the symbol file,
exit from the editor, and start the editor again. EBOOKIE will then use the new
symbol file.
If you want to create a symbol table for a different codepage you should:
1. copy one of the supplied symbol files to a file with the name:
name.codepage
where "name" is whatever you like (this name must be defined in the tag
definition file), and "codepage" is the number of the codepage which will
be active when you start the editor.
2. change the new file.
This procedure insures that the file has the correct size and layout. To
activate the new symbol file, you just have to start the editor again, after
you have switched to the codepage for which you have created the symbol file.
ΓòÉΓòÉΓòÉ 5.12. The Default Codepage ΓòÉΓòÉΓòÉ
The symbols support of EBOOKIE allows you to replace certain keys with symbols.
In order to do this correctly, EBOOKIE has to know which codepage is active.
This is donw by querying the operating system. DOS versions before 3.3 don't
have codepage support, therefore EBOOKIE can not determine which codepage is
active. You may, however, configure which symbols table should be used
following this procedure:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_codepage='???'
??? The codepage you want to use. This may be '850' or '734'.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.13. Define the Space Key ΓòÉΓòÉΓòÉ
The parameter expansion is in three steps. The required parameters, the
"usual", and "all" parameters. Usually the "space" key triggers the expansion
of the "usual" parameters. If the space key should expand all parameters you
have to do the following:
1. Edit the file MYCNF.E.
2. Change the line:
my_bkm_space_key='USUAL'
to:
USUAL The "space" key expands only the usual parameters.
ALL The "space" key expands all parameters.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.14. Changing the Default File Extensions ΓòÉΓòÉΓòÉ
When a file is loaded into the ring, EBOOKIE tries to find out what it should
do with it. First it reads the first lines of the file to find the footprint.
If no footprint is found, EBOOKIE checks the extension of the file. The default
extensions which trigger the activation of the support are:
SCR BKM SCT FOI IPF SCRIPT STYLE
If you want to add or remove some of the extensions, or if you want to suppress
this checking at all, you have to use the following procedure:
1. Edit the file MYCNF.E
2. Change the line:
my_bkm_files='SCR BKM SCT FOI IPF SCRIPT STYLE'
to whatever you think is appropriate. If you specify a blank, the
extensions are not checked at all.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.15. Attribute Support for EPM ΓòÉΓòÉΓòÉ
EBOOKIE supports the COLORCLASS of EPM attribute classes. When the attribute
support is configured all tags you type are highlighted, except those which are
pulled from a file. One additional command ("bkmattr") allows you to highlight
all tags of the current file. Please note that this command has to find all
tags in your file, it therefore takes a long time for large files! If you save
the file, the attributes are lost.
To include the attribute support in EBOOKIE, which is not included in the
default configuration, you have to do the following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_attr=1
1 The attribute support will be included.
0 The attribute support will not be included (the default).
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.16. Margin Changes in E3 ΓòÉΓòÉΓòÉ
The E3 editor supports the margin setting in a different way as EPM or EOS2.
While in EOS2 or EPM the margins are set for each file in the ring separately,
E3 sets the margins for all files. EBOOKIE resets the margins for script file
to "1 70 1", or what you have specified in "my_bkm_margin". When you switch to
a file which is not controlled by EBOOKIE, it resets the margins to the default
value specified in the constant DEFAULT_MARGINS. In order to respect the margin
setting of the user, EBOOKIE supports a flag which forces EBOOKIE not to change
the margins.
To force EBOOKIE to leave the margins alone you have to do the following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_dont_touch_margins=0
1 EBOOKIE will not change the margins.
0 EBOOKIE controls the margins (the default).
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
Note: If you have configured "dynamic margins" and have set the
"my_bkm_dont_touch_margins" to "1", you will receive an error message
during compilation, because those options are conflicting.
ΓòÉΓòÉΓòÉ 5.17. The Index Support ΓòÉΓòÉΓòÉ
EBOOKIE includes an index support, which may assist you in creating simple
indices.
To activate or deactivate the index support you have to do the following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_idx_supp=1
1 Index support included (the default).
0 Index support not included.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.18. The Cases of the Index ΓòÉΓòÉΓòÉ
The index entries created by EBOOKIE are usually folded to lower case. This is
reasonable in languages like English, but not desired in for example German.
You may specify if EBOOKIE should leave the cases untouched by doing the
following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_keep_index_cases=1
1 The cases of the index entries will not be touched.
0 The index entries will be folded to lower case, except the word is
all uppercase. This is the default.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.19. The Help Support ΓòÉΓòÉΓòÉ
EBOOKIE includes a help support, which may assist during creating your
document.
To activate or deactivate the help support you have to do the following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_help_support=1
1 Help support included (the default).
0 Help support not included.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.20. The Help File ΓòÉΓòÉΓòÉ
EBOOKIE uses two different types of help files depending on the editor. If you
are using EPM, the OS2 "VIEW" command is used to display the help information.
If you want to create your own help file for EPM, please drop me a note.
If you are using EOS2 or E3, the following applies.
The help facility of EBOOKIE uses keywords in the help file to find the
requested entry. All keywords must start in column one, the text related to
this keyword must have at least one blank in front of the line. Keywords are
delimited by one blank character, or an equal sign ("="). Here is an example:
ACTSIZE='activities-size'\\
Specifies the width of an activity column in a schedule.\
Tag: SCHDATE, SCHDEF, SCHEDULE
The backslash characters ("\") are interpreted as control characters. They
start a new line and are removed from the text.
Duplicate keywords are allowed within the help file, but they have to be in
sequence.
The name of the help file is determined by the name of the primary tag
definition file, the extension is ".HLP". For example, the help definition file
for BookMaster is called BKMTAGS.HLP. This is the only help file currently
supplied by EBOOKIE.
ΓòÉΓòÉΓòÉ 5.21. The BookMaster Reference ΓòÉΓòÉΓòÉ
EBOOKIE includes a BookMaster reference document as a .INF file. This allows
the OS/2 to view the BookMaster Reference summary.
To activate or deactivate the reference support you have to do the following:
1. Edit the file MYCNF.E.
2. Change or add the line:
my_bkm_help_reference=1
1 Reference support included (the default in OS/2).
0 Reference support not included.
If the file MYCNF.E doesn't exist, rename the file MYCNF.XMP to MYCNF.E and
change the constants in this file.
3. Compile the support following the procedure in Compiling the Tag Support.
ΓòÉΓòÉΓòÉ 5.22. Colors for the Attribute Support ΓòÉΓòÉΓòÉ
If you have onfigured the attribute support available in EPM, you also have the
option to define which forground and background colors to use. This is done by
defining the
my_bkm_attr_colors=
constant in MYCNF.E. The default is:
my_bkm_attr_colors=92
which gives you a white text on a pink background. You may use the color
definitions from "COLOR.E", which is supplied in the editor macros.
ΓòÉΓòÉΓòÉ 5.23. Compiling the Tag Support ΓòÉΓòÉΓòÉ
Depending on how you want to include EBOOKIE (as an external module, or
included into the main parts of the editor), you have to compil either two or
three modules.
ΓòÉΓòÉΓòÉ 5.23.1. Compiling EBOOKIE Externally ΓòÉΓòÉΓòÉ
To compile EBOOKIE as an externally loadable module it has to be defined into
EPM as an external module. In order to do that you have to include the
following line into your MYCNF.E:
WANT_EBOOKIE = 'DYNALINK'
Then you have to compile EPM, EXTRA, and BKEYS with the commands:
ETPM BKEYS
ETPM EPM
ETPM EXTRA
This compiles a new BKEYS.EX, which will be used the next time you start EPM.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéImportant Note Γöé
Γöé Γöé
Γöé Γöé
ΓöéSince EBOOKIE has some hooks into, and uses some of the Γöé
Γöédefinitions of EPM, you always have to compile all three at Γöé
Γöéonce. Do noch change your confuguration of EPM, and compile Γöé
Γöéonly one or two of the files. Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ 5.23.2. Compiling EBOOKIE Into EPM ΓòÉΓòÉΓòÉ
If you want EBOOKIE to be compiled into EPM, which has the advantage of faster
loading, and removed the necessity of creating a PROFILE.ERX, you have to do
the following:
1. Edit your MYCNF.E file, and add the following line:
WANT_EBOOKIE = 1
2. Compile the editor with:
ETPM EPM
ETPM EXTRA
Note: The ETPM EXTRA is only needed when you have EXTRA_EX = 1 in your
MYCNF.E.
3. Create a new PROFILE.ERX with the following contents:
/* */
'link bkeys'
'sayerror Profile processed'
If you already have a PROFILE.ERX, add the line
'link bkeys'
to this file.
4. Issue the EPM command PROFILE ON. From now on the file PROFILE.ERX is
executed whenever you start EPM, and with it EBOOKIE is started.
For more information about the compiling process refer to the EPM User's Guide.
ΓòÉΓòÉΓòÉ 6. EBOOKIE Messages ΓòÉΓòÉΓòÉ
All messages issued by EBOOKIE start with the prefix "EBOOKIE:". There are two
types of messages:
o error or notification messages
and
o debugging messages.
All messages which have an ellipses ("...") at the end have to be acknowledged
with a keystroke. Debugging messages are only issued when debugging is
configured. Refer to Including the Debugging Support for more information.
ΓòÉΓòÉΓòÉ 6.1. Error or Notification Messages ΓòÉΓòÉΓòÉ
The following is a list of all error messages, and a possible cause.
No tag definition file active.
Issued by the "bookie" command. Use the "bookief" command to define
valid tag definition files.
Invalid parameter 'parm' supplied, must be 'ON' or 'OFf'
Issued by the "bookie" command. The command accepts one parameter
which must be "on" or "off". The default (no parameter entered) is
"on".
Required parameter 'filename' omitted.
You have issued the "bookief" command without any parameters.
Re-issue the command, and supply the name of at least one tag
definition file.
Symbol support not active
Issued by the "bkmsym" command. You issued the command, but the
symbol support was not active. You probably don't use a tag
definition file which has symbols associated.
No marked line(s), and 'all' parameter not specified.
You issued the "bkmsym" command without marking an area. In order to
prevent an accidental replacement of all special characters which
symbols you must specify the "all" parameter on the "bkmsym" command
to really process the entire file.
Processing ended, 'number' lines changed.
The "bkmsym" command has completed successfully, and has changed the
number of lines indicated.
Invalid parameter 'text' supplied, must be ON|OFf|Display|Trace|Etrace
Issued by the "bkmdebug" command. Supply one of the valid parameters.
The minimum abbreviations are shown in uppercase.
Debugging support not configured.
You have issued the "bkmdebug" command, but the debugging support was
not included into your configuration. Refer to Including the
Debugging Support if you want to include debugging.
Support is not active for this file.
You wanted to use the "alt_h" command for help, but the tag support
is not active for this file. If you want to use the help support, you
first have to activate EBOOKIE.
Unable to find the file 'file', support not available.
You wanted to use the help facility, but the help file could not be
found.
The help file has to be located in the directory of the editor, or
somewhere along the DPATH in OS/2, the PATH in DOS, or the EPATH.
Unable to create a buffer, OS/2 rc='rc'
The help facility tried to allocate a buffer, but received an error
from OS/2. You are probably out of storage, and the system could not
swap. Inspect the OS/2 return code and correct the problem (usually
by relocating the SWAPPER.DAT file to a drive which has more free
space).
Dynalink error, rc='rc'
EBOOKIE tried to create a message box, but received the error shown
in the message. Don't ask me why this should happen. The best thing
you can do is to report this in the EBOOKIE FORUM on IBMPC.
'word' not found.
You pressed the "alt_h" key, but the word where the cursor is located
could not be found. No help exists for the word shown in the message.
Line mark invalid, must be block mark or not marked at all.
You wanted to use the index facility by pressing "alt_i", but you had
a line mark active. The index facility requires a block mark, or no
mark at all.
The marked block must not span lines.
You wanted to use the index facility, but the block you marked did
span lines, which is invalid.
Unrecoverable error with definition file and index, support halted
The tag definition file and the index don't match. An attempt was
made to re-create the index, but it didn't work. Exit the file you
are currently editing, delete the index file manually, and resume
editing. If the problem persists, append to the "EBOOKIE FORUM" on
IBMPC.
File 'file' not found, repair 'definition file(s)'.
The tag you have entered wanted to pull a file from disk into your
document, but the file could not be found. To correct the problem
copy the file shown in the message (and probably some others too) to
one of the following directories:
o Somewhere in the EPATH
o Somewhere in the PATH (DOS) or DPATH (OS/2)
o The directory where the editor resides.
Flag 'flag' for 'tag' invalid, repair 'tag definition file(s)
The flag you have defined in your tag definition file is invalid.
Refer to Changing the Tag Definition File for a description of the
definition file and the valid flags.
Note: EBOOKIE can not determine which file has the error. You may
have to look through all files shown in the message to determine the
cause of the error.
The file(s) 'list-of-files' could not be found.
You have specified the name of one or more additional tag definition
files, which could not be found along the EPATH, PATH (DOS) or DPATH
(OS/2), and in the directory where the editor resides. The support is
activated, but without the definition files shown in the message.
Note: You must acknowledge this message by pressing any key.
If you have not previously issued a "bookief" command, this might be
caused also by:
o An invalid default specified in MYCNF.E
o You tried to edit a file from a source which had additional tag definition
files defined, but you don't have those files.
Initializing tag support, creating tag index, please wait.
This notification message is issued when a new index file is created.
Please wait until the message is removed, you can then work with your
file.
Could not locate the file 'file', symbol support not active.
EBOOKIE tried to locate the file shown in the message, but could not
find it. You should copy the symbol file to the directory shown in
the message. If the file does not exist may create one, or remove the
name of the symbol file from your tag definition file.
Could not find the file 'file', support status unchanged.
You have specified a primary tag definition file which could not be
found. You can resume work with the old definition file.
Could not find the file 'file', support not available
You have specified a primary tag definition file which could not be
found. The support was inactive, and remains inactive until you
specify a valid tag definitions file with the "bookief" command.
Error during 'get' of 'file', cc='rc'
Issued by the routine "bkm_get()". The file has been found, but there
was one of the following errors:
1. You don't have enough storage.
2. The maximum number of files which can be in a ring has been exceeded.
Inspect the return code and the "User's Guide" of the editor you are
using to correct the error.
Note: You must acknowledge this message by pressing any key.
Could not allocate the file '.BKM', support halted.
The support has tried to switch to the (hidden) file ".BKM", and the
"getfileid" command did not return the file handle. An attempt was
made to create the file, but again the file could not be located.
Probably there are too many files in the ring. Please report to the
EBOOKIE FORUM on IBMPC. The support is halted.
Note: You must acknowledge this message by pressing any key.
ΓòÉΓòÉΓòÉ 6.2. Messages Issued During Debugging ΓòÉΓòÉΓòÉ
When debugging is switched on ("bkmdebug on" command), some additional messages
are display. All messages have to be acknowledged with a keystroke, or the
"cancel" button. Please note that the debugging support is only available if it
is properly configured. Refer to Including the Debugging Support for more
information.
Margins changed to 'new margins'
Displayed whenever a "dynamic" margin change is done.
bkm_expansion('char'), bkm='flag', colon='pos', line='line'.
The routine "bkm_expansion()" has been called with the following
parameters:
char The current character. Might be " " (space) or "." (period).
flag Number of the index file.
pos Position of the colon in the line.
line The line number of the colon.
bkm_expansion... tag='tag' caution='flag' line='line' linerest='linerest'
The routine "bkm_expansion()" continues processing the tag. The
parameters shown in the message are:
tag The current tag.
flag The caution flag.
0 Regular tag processing.
1 The cursor is left of the tag-start character.
2 The tag ends with an tag-end character already. This might
happen when the colon is typed again.
line The text to the left of the tag.
linerest The text after the tag.
bkm_process('line','tag','force','parms','after','before')
The routine "bkm_process" has been called with the parameters shown.
line The stuff before the tag.
tag The tag.
force The current flag. Refer to Changing the Tag Definition File for a
description of this flag.
parms The parameters for this tag.
after Additional tags which should be inserted in lines after the tag,
or the name of a file which should be included.
before Additional tags which should be inserted in lines before the tag.
Searching for tag 'tag'
The tag-searching routine has been called for the tag specified in
"tag".
bkm_init() 'file'
The routine "bkm_init" has been called for the file shown. This
routine is called:
o during DEFLOAD in EOS2 and EPM
o during the "select_edit_keys()" processing in E3.
bkm_init() 'file' continues
The routine "bkm_init" has been called for the file shown. The file
will be processed. File which are not processed are:
o the main definition file
o the main index
o all files where the name starts with a period
o the variable "bkm_nocheck" indicates that the file should not be
processed.
bkm_init() 'file' ended, rc=
The routine "bkm_init()" has ended for this file with the shown
return code. If the return code is zero, the support will not be
activated for this file.
bkm_select() called for 'file'
The routine shown in the message has been called during a "DEFSELECT"
or "select_edit_keys()" processing.
bkm_chg_def_file('file','force')
The routine has "bkm_chg_def_file()" has been called with the
parameters shown. If "force" is "1", the index will be re-built.
Initializing tag support
The support is initialized. The tag definition files are read from
the disk, and, if necessary, a new index is created.
Checking symbol support, file='name.codepage'
The support tries to locate the file shown. If either the name or the
extension is empty, nothing will be done. If both are defined, the
disk is searched for this file in the same directory as the master
tag definition file.
Initializing symbol table
The symbol table is initialized. This message appears only if you
edit a BookMaster file and the symbol support has been included.
bkm_upd_line_one()
The routine shown in the message (which sets the first line in the
file) has been called.
bkm_switch('num')
The routine "bkm_switch()" has been called with the parameter shown.
bkm_switch('num') file 'newidx' no header
The index file shown in "newidx" has no header. Please report to
EBOOKIE FORUM on IBMPC.
bkm_switch('num') file 'newidx' not found
The index file shown in "newidx" was not found. Please report to
EBOOKIE FORUM on IBMPC.
bkm_findfile('file')
The routine "bkm_findfile" has been called to locate the file shown
in the message.
bkm_get('file')
The routine "bkm_get()" has been called with the file shown.
bkm_find_file('name')
The support tries to locate the file shown in "name" in its internal
(hidden) file ".BKM" to retrieve information about the editing
status.
bkm_upd_bkm_files('bkm','tag')
The support is saving some information about the current file in the
hidden file ".BKM".
bkm Shows the current editing status (-1 if unchanged).
tag The tag which triggers a change in margins (only valid if the
dynamic margins feature is active).
bkm_make_bkm() called. Current='filename'
The routine to create the hidden file ".BKM" has been called. The
current file is shown in "filename".
bkm_get_parms('line','flag') called
The routine which interprets the first line of tag definition files
has been called. The first parameter "line" contains the first line
of the file, the second parameter is "1" when the primary tag
definition file is processed, and "0", when additional files are
interpreted.
DEFLOAD called for 'filename'
The "DEFLOAD" routine has been called for the file shown in the
message. This message can only appear in EOS2 and EPM.
DEFSELECT called for 'filename'
The "DEFSELECT" routine has been called for the file shown in the
message. This message can only appear in EOS2 and EPM.
ΓòÉΓòÉΓòÉ 7. EBOOKIE Internals ΓòÉΓòÉΓòÉ
All files used by EBOOKIE (tag definition files, skeleton files, symbol files,
and help files) may reside in the following directories:
1. Along the "EPATH" in EOS2 and E3, or the "EPMPATH" in EPM.
2. Along the "DPATH" in EPM and EOS2, or the "PATH" in E3.
3. In the directory where the editor resides.
When the first file which needs the tag support is loaded into the ring, the
tag definition files defined in the file itself (using the ".* EBOOKIE"
footprint) is loaded into a hidden file. If the footprint can not be found, the
default tag definition files found in the variable "bkm_tag_file" are used.
Then the index file is read from the directory defined in the following
variables or constants (in this order):
1. vAUTOSAVE_PATH
2. AUTOSAVE_PATH
3. vTEMP_PATH
4. TEMP_PATH
If none of those variables or constants point to a valid path the directory
where the primary tag definition file was is used to store and retrieve the
index. If the index file is not found, or doesn't match the current definition
files (the index has the footprint too), one is created, and saved on the disk.
Please note that the index might not be created right away, only when an
inconsistency is found. For example, if you delete a line from the definition
file, the record numbers for the lines before the line you have deleted are
still valid. The inconsistency is found when the line specified in the index
doesn't contain the tag in the definitions file. This might happen a long time
after you have changed the definition file.
If you edit files which require different tag definition files during the same
editing session, the number of hidden files is increased by two for each set,
by three, if the symbol support is activated. For example, if you edit ten
files where each file requires a different set of definition files, you
actually have at least 31 files in your ring. If those ten files would all use
the same set of definition files, you would have only 13 (or 14, if the symbol
support is active) files in the ring. In any case you will see only ten files,
all other internal files are hidden.
To summarize, EBOOKIE uses the following hidden files:
o A file which is used as temporary buffer with the name ".BKM", which is
allocated during "DEFINIT" processing.
o The symbol file associated with the current tag definition file.
o The file which contains the tag definitions.
o The index into the tag definition file.
o The help file.
When you use the help facility under EOS2 or E3 you will also find one
non-hidden file in your ring called ".HLP" which contains the last requested
help information.
When you type a tag, the index is searched. If the tag is found, the record
number found in the index is used to retrieve the tag-specific data. Those data
are then used to format the text.
All tags start with the character defined in the tag definition file, and can
be terminated by:
o the enter key
o the space bar
o c_space in EPM or c_enter in EOS2 or E3
o the tag-end character
o the cursor up key
o the cursor down key
o the page up key
or
o the page down key
Those keys trigger the following actions:
tag-start Save the position of the character (line number, and
column position).
space If there was a tag-start character on the same line,
the main processing routine is called. This routine
determines if there was a valid tag, and acts
accordingly. If the tag has required and/or optional
parameter, they are inserted into the text.
c_space in EPM Same as space, but all parameters are inserted into
the text.
c_enter in EOS2 Same as c_space.
tag-end character Basically the same as space, only that optional
parameters are not inserted into the text.
enter Exactly the same as the period.
up Same as period.
down Same as period.
page up Same as period.
page down Same as period.
EBOOKIE intercepts all keys of the keyboard in unshifted and shifted mode. This
is necessary because of the variable tag-start and tag-end characters. In
addition to the regular keys, it also intercepts:
o tab
o shift-tab
o alt_2
o alt_h
o alt_i
Those keys are intercepted to support the tabbing, the "remember next tag"
function, the help, and index facilities. Within the text tabbing is one word
at a time. If the cursor is right of any text, or within the range of a
language construct which triggered the dynamic margin changes, it tabs forward
or backward using regular tabstops.
ΓòÉΓòÉΓòÉ 7.1. The Symbol Files ΓòÉΓòÉΓòÉ
Every set of tag definition files may define one additional file which contains
the symbol table. EBOOKIE supplies two symbol tables for BookMaster, one for
codepage 850, and one for codepage 437. The following tables show the key code
in decimal, and the associated BookMaster symbol.
ΓòÉΓòÉΓòÉ 7.1.1. The BKMTAGS.850 File ΓòÉΓòÉΓòÉ
001 &face.
002 &FACE.
003 &HEART.
004 &DIAMOND.
005 &CLUB.
006 &SPADE.
007 &bul.
008 &revbul.
009
010
011 &male.
012 &female.
013
014 ¬e1616.
015
016 &rahead.
017 &lahead.
018 &udarrow.
019 &dblxclm.
020 Ї &par.
021 ї &dbls.
022 &dblus.
023 &udarrowus.
024 &uarrow.
025 &darrow.
026 &rarrow.
027 &larrow.
028 &lnotusd.
029 &lrarrow.
030 &TRIANGLE.
031
032
033 ! &xclm.
034 " &sdq.
035 # &numsign.
036 $ &dollar.
037 % &percent.
038 : &gml.
039 ' &ssq.
040 ( &lpar.
041 ) &rpar.
042 * &asterisk.
043 + &plus.
044 , &comma.
045 - &minus.
046 . &period.
047 / &slash.
048
049
050
051
052
053
054
055
056
057
058
059 ; &semi.
060 < <.
061 = &eq.
062 > >.
063 ? &quest.
064 @ &atsign.
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091 [ &lbrk.
092 \ &bsl.
093 ] &rbrk.
094 ^ &caret.
095 _ &us.
096 ` &grave.
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 { &lbrc.
124 | &vbar.
125 } &rbrc.
126 ~ &tilde.
127 &house.
128 А &Cc.
129 Б &ue.
130 В &ea.
131 Г &ac.
132 Д &ae.
133 Е &ag.
134 Ж &ao.
135 З &cc.
136 ╨ÿ &ec.
137 Й &ee.
138 К &eg.
139 Л &ie.
140 М &ic.
141 Н &ig.
142 О &Ae.
143 П &Ao.
144 Р &Ea.
145 ╨í æ.
146 ╨ó Æ.
147 У &oc.
148 Ф &oe.
149 Х &og.
150 Ц &uc.
151 Ч &ug.
152 Ш &ye.
153 Щ &Oe.
154 Ъ &Ue.
155 Ы &os.
156 Ь &Lsterling.
157 Э &Os.
158 Ю &mult.
159 Я &florin.
160 ╨░ &aa.
161 ╨▒ &ia.
162 ╨▓ &oa.
163 ╨│ &ua.
164 ╨┤ &nt.
165 ╨╡ &Nt.
166 ╨╢ &aus.
167 ╨╖ &ous.
168 ╨╕ &invq.
169 ╨╣ ®tm.
170 ╨║ &lnot.
171 ╨╗ ½.
172 ╨╝ ¼.
173 ╨╜ &inve.
174 ╨╛ &odqf.
175 ╨┐ &cdqf.
176 Γûæ &box14.
177 ΓûÆ &box12.
178 Γûô &box34.
179
180
181 Γòí &Ag.
182 Γòó &Ac.
183 Γòû &Aa.
184 Γòò &copr.
185
186
187
188
189 ╨½ ¢.
190 ╨¡ ¥.
191
192
193
194
195
196
197
198 Γò₧ &at.
199 Γòƒ &At.
200
201
202
203
204
205
206
207 Γòº ¤cy.
208 Γò¿ ð.
209 Γòñ &Eth.
210 ΓòÑ &Ec.
211 ΓòÖ &Ee.
212 Γòÿ &Eg.
213 ΓòÆ &idotless.
214 Γòô &Ia.
215 Γò½ &Ic.
216 Γò¬ &Ie.
217
218
219
220
221 | &splitvbar.
222 ΓûÉ &Ig.
223 ΓûÇ &BOXTOP.
224 р &Oa.
225 с &beta.
226 т &Oc.
227 у &Og.
228 ф &ot.
229 х &Ot.
230 ц &mu.
231 ╤ç þ.
232 ш &Thorn.
233 щ &Ua.
234 ъ &Uc.
235 ы &Ug.
236 ь &ya.
237 э &Ya.
238 ю &overline.
239 ╤Å ´.
240 - &minus.
241 ё &pm.
242
243 ╤ö ¾.
244 Ї &par.
245 ї &dbls.
246 Ў &div.
247
248 ┬░ &sup0.
249
250 ┬╖ &smultdot.
251 ΓêÜ ¹.
252 Γäû ³.
253 ┬ñ ².
254 Γûá &sqbul.
ΓòÉΓòÉΓòÉ 7.1.2. The BKMTAGS.437 File ΓòÉΓòÉΓòÉ
001 &face.
002 &FACE.
003 &HEART.
004 &DIAMOND.
005 &CLUB.
006 &SPADE.
007 &bul.
008 &revbul.
009
010
011 &male.
012 &female.
013
014 ¬e1616.
015
016 &rahead.
017 &lahead.
018 &udarrow.
019 &dblxclm.
020 Ї &par.
021 ї &dbls.
022 &dblus.
023 &udarrowus.
024 &uarrow.
025 &darrow.
026 &rarrow.
027 &larrow.
028 &lnotusd.
029 &lrarrow.
030 &TRIANGLE.
031
032
033 ! &xclm.
034 " &sdq.
035 # &numsign.
036 $ &dollar.
037 % &percent.
038 : &gml.
039 ' &ssq.
040 ( &lpar.
041 ) &rpar.
042 * &asterisk.
043 + &plus.
044 , &comma.
045 - &minus.
046 . &period.
047 / &slash.
048
049
050
051
052
053
054
055
056
057
058
059 ; &semi.
060 < <.
061 = &eq.
062 > >.
063 ? &quest.
064 @ &atsign.
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091 [ &lbrk.
092 \ &bsl.
093 ] &rbrk.
094 ^ &caret.
095 _ &us.
096 ` &grave.
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 { &lbrc.
124 | &splitvbar.
125 } &rbrc.
126 ~ &tilde.
127 &house.
128 А &Cc.
129 Б &ue.
130 В &ea.
131 Г &ac.
132 Д &ae.
133 Е &ag.
134 Ж &ao.
135 З &cc.
136 ╨ÿ &ec.
137 Й &ee.
138 К &eg.
139 Л &ie.
140 М &ic.
141 Н &ig.
142 О &Ae.
143 П &Ao.
144 Р &Ea.
145 ╨í æ.
146 ╨ó Æ.
147 У &oc.
148 Ф &oe.
149 Х &og.
150 Ц &uc.
151 Ч &ug.
152 Ш &ye.
153 Щ &Oe.
154 Ъ &Ue.
155 ╨½ ¢.
156 Ь &Lsterling.
157 ╨¡ ¥.
158
159 Я &florin.
160 ╨░ &aa.
161 ╨▒ &ia.
162 ╨▓ &oa.
163 ╨│ &ua.
164 ╨┤ &nt.
165 ╨╡ &Nt.
166 ╨╢ &aus.
167 ╨╖ &ous.
168 ╨╕ &invq.
169 ╨╣ &lnotrev.
170 ╨║ &lnot.
171 ╨╗ ½.
172 ╨╝ ¼.
173 ╨╜ &inve.
174 ╨╛ &odqf.
175 ╨┐ &cdqf.
176 Γûæ &box14.
177 ΓûÆ &box12.
178 Γûô &box34.
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224 р &alpha.
225 с &beta.
226 т &Gamma.
227 у &pi.
228 &sum. &sum.
229 х &sigma.
230 ц &mu.
231 &tau
232 ш &Phi.
233 &theta. &theta.
234 ъ &Omega.
235 ы &delta.
236 ь &infinity.
237 э &phi.
238 &memberof. &memberof.
239 &meet. &meet.
240 Ё &identical.
241 ё &pm.
242 Є &ge.
243 є &le.
244 Ї &inttop.
245 ї &intbot.
246 Ў &div.
247
248 ┬░ &sup0.
249 &lmultdot. &lmultdot.
250 ┬╖ &smultdot.
251 √ &sqrt.
252 Γäû &supn.
253 ┬ñ ².
254 Γûá &sqbul.
ΓòÉΓòÉΓòÉ 7.2. Debugging EBOOKIE ΓòÉΓòÉΓòÉ
EBOOKIE has some debugging features which might be useful in determining
erroneous behavior. If you have configured EBOOKIE for debugging (refer to
Including the Debugging Support for more information), you have one additional
command "bkmdebug" which controls the (few) debugging features. The command
accepts one parameter (minimum abbreviations are shown in uppercase) which can
be:
ON Turns on debugging mode. EBOOKIE displays additional messages. All
messages have to be acknowledged with the press of a key.
OFf Return debugging to the default state (off).
Display This option adds a few lines to the current file after the cursor
position. The information displayed looks like:
.**EBOOKIE**DEBUGGING**INFO**START**
.* version: 2.2, DOS (OS/2) version=330
.* def: .D1
.* idx: .I1
.* avail: 1
.* save_file: BKMTAGS.DEF
.* num: 2
.* cur_num: 1
.* rep_tag: :p.
.* tag_start: :
.* tag_end: .
.* end_tag: :e
.* inv_tag_rep: &colon.
.* Files known to EBOOKIE:
.* C:\E3\EBOOKIE\BKEYS.E == 0 || || || : || . || :e || &colon. || BKMTAGS.437
.* C:\E3\EBOOKIE\EBOOKIE.SCR == 1 || || :p. || : || . || :e || &colon. || BKMTAGS.437
.* symbols: [a lot of crazy looking characters]
.* codepage= 437
.* sym_file= BKMTAGS.437
.* bkm_temp_path= C:ОTEMPО
.* bkm_did_bkmattr= 1
.**EBOOKIE**DEBUGGING**INFO**END**
version: The version of EBOOKIE and of the operating system you use.
def: The internal tag definition file name. It consists of a ".D"
followed by a number which should correspond to the number shown
in "cur_num".
idx: The internal name of the index. It consists of a ".D" followed by
a number which should correspond to the number shown in "cur_num".
avail: The "support available" flag. This flag is usually "1". If it is
"0" the initialization routine could not locate the primary tag
definition file, and the support is not available. If it "-1", the
support has not been initialized.
save_file:The name of all tag definition files used for this file. This is
the same as show in the first line of the document.
num: The internal number used for the next set of definition files and
index.
cur_num: The number of the current set of definition files and index.
rep_tag: The tag which will be inserted and interpreted if you press the
"alt-2" key.
tag_start The first character of the tags.
tag_end The terminating character of the tags.
end-tag The character sequence which is common to all end-tags.
inv_tag_repThe character sequence which replaces the tag-start character
when an invalid tag is found.
Files known to EBOOKIEA list of files known to the support. This might not
include all files in the ring, some are excluded. The layout of
this information is:
name The name of the file.
== Delimiter
flag This shows the current editing status of the file. If this flag
is zero, the file will not be touched by EBOOKIE. If it shows
any other positive number, it is the number of the tag
definition file and index used to format the file.
|| Delimiter
tag The "between" tag which triggered a change in margins for this
file.
|| Delimiter
a_2 The text assigned to the "alt-2" key for this file.
|| Delimiter
tag_start The first character of the tags.
tag_end The last character of the tags.
end_tag The character sequence which is common to all end-tags.
inv_tag_repThe character sequence which replaces the tag-start character
when an invalid tag is found.
symbol_fileThe name and extension of the symbol file which is associated
to this file.
symbols A list of all characters which will be replaced by the appropriate
BookMaster symbol. This line is blank when:
1. the support is not configured
2. no symbol file has been defined in the tag definition files
3. the defined symbol file has not been found.
This line is shown only when the support for symbols is included.
codepage The current codepage. This is used to determine the symbol file
name. This line is shown only when the support for symbols is
included.
sym_file The name of the current symbol file. If this field is blank, the
symbol support is inactive, even though it has been included into
the configuration.
between: The starting tag of a language construct which triggered a change
in margins. If this is not blank, the margins have been changed to
"1 254 1". This variable is shown only if you have included the
dynamic margins feature.
bkm_temp_pathThe path where EBOOKIE stores its index.
bkm_did_bkmattrUsed in EPM only. This flag may have the following values:
Flag Value
0 Support not active for this file.
1 Support active for this file.
Trace Sets "echo on".
Etrace Sets "echo off".
ΓòÉΓòÉΓòÉ 7.3. Procedures of EBOOKIE ΓòÉΓòÉΓòÉ
EBOOKIE is structured in various subroutines called procedures. The following
list should assist you to find your way through the code.
Procedure Function
bkm_pgup()
This procedure is called when you press the "page-up" key. Depending
on your definition of the dynamic margins feature this routine does:
1. a normal page-up
then
2. check each skipped line and change the margins if necessary.
Note: This routine is only included if the dynamic margins feature
is configured.
bkm_pgdn()
Same as "bkm_pgup", only in the other direction.
bkm_up()
Note: This routine is only included if the dynamic margins feature
is configured.
Called when you press the "up" key, or by the procedure "bkm_pgup".
The current line is checked, and the margins are changed if required.
Note: This routine is only included if the dynamic margins feature
is configured.
bkm_down()
Same as "bkm_up", only in the other direction.
Note: This routine is only included if the dynamic margins feature
is configured.
bkm_expansion(char)
The main procedure of the macro. Something which could be a tag has
been found, and has to be checked. First the line is parsed into
three parts, the stuff before the tag, the tag itself, and the stuff
after the tag. Then the index is searched (via the routine
"bkm_find_tag)", and the tag is processed. Depending on the input
parameter "char", which can be a space, or a period, the default and
optional parameters are selected. Finally the tag-processing
procedure ("bkm_process_tag") is called to insert the tag, the
parameters, and the additional lines into the text.
bkm_process(line,tag,char,force,parms,xother,beforelines)
This routine is called from "bkm_expansion" and inserts the tag, the
parameters, and the additional lines into the text.
bkm_find_tag(tag)
This routine searches the index for tag defined in the parameter. It
returns "0" when the tag could not be found, otherwise it returns the
line number of the tag in the tag definition file.
bkm_say(msg,flag)
Displays the message in the status line. If the flag is "1" it also
waits for the pressing of a key.
bkm_init()
This procedure is called from the "DEFLOAD" processing in EOS2 and
EPM, and from the "select_edit_keys" processing in E3. It checks the
file and starts the support if necessary.
bkm_select()
Called during DEFSELECT or select_edit_keys() processing. Restores
the environment for the current file.
bkm_chg_def_file(file,force)
This procedure opens the definition file(s) and the index. If the
index is invalid, or does not exist, it is rebuilt.
bkm_upd_line_one()
Updates or creates the EBOOKIE footprint.
bkm_switch(num)
This routine is called during the "DEFSELECT" or "select_edit_keys"
processing. It activates the current definition file and the
corresponding index by setting the necessary global variables.
bkm_findfile
Searches the disk for the specified file.
bkm_get(file)
This routine is called when the support wants to "get" a file. In E3
and EOS2 it just does a "get", in EPM it does not use the command, it
does it internally. This is because of some problems i have had with
the "get" command in EPM.
bkm_find_file(name)
Called to find the current file in the internal (hidden) file ".BKM".
bkm_upd_files(bkm,tag)
Called to save some information in the ".BKM" file. Refer to
Debugging EBOOKIE for a the layout of the data in this file.
bkm_make_bkm()
Called to open a hidden file with the name ".BKM".
bkm_get_parms(line,flag)
This routine parses the first line of the tag definition files, and
sets the global variables accordingly.
bkm_defload()
This routine is called during "DEFLOAD" processing.
bkm_defselect()
This routine is called during "DEFSELECT" processing.
bkm_upd_line_attr(linenum)
Updates the attributes of the tag in the line with the number given
as parameter. This routine is included only if the attribute support
is configured.
ΓòÉΓòÉΓòÉ 7.4. Summary of Changes ΓòÉΓòÉΓòÉ
Version Date
1.00 10/05/89
First release to PCTOOLS.
1.01 10/13/89
Bug fixes:
1. Tags entered in any position on empty lines should be moved to position
one.
Additional functions:
1. Implementation of GML Starter-Set tags.
2. Configurable margins.
3. Use of DPATH, EPATH, or PATH to find tag definition file. This removes
the requirement of specifying the constant "my_bkm_path" in MYCNF.E.
4. Tab-word changes. Within the text the tabs are one word at a time, right
of the text it uses regular tabstops.
1.02 10/16/89
Additional functions:
1. Dynamic margins implementation.
1.10 10/24/89
Bug fixes:
1. When the tag was moved to a new line by the automatic word-wrap feature
of "E", it was not processed properly.
Additional functions:
1. Primary and optional tag definition files.
2. Footprint stored in user dataset, to restore correct tag definition
files.
3. Automatic creation of the index to the tag definition file(s).
4. Debugging and message facilities.
5. The up, down, page-up, and page-down keys are treated like a period (end
the tag). The left, right, and end keys are not intercepted any more, to
allow the user more freedom during editing of the line.
6. Dynamic margins (optional).
1.11 10/28/89
Bug fixes:
1. The ":ledi" macro has an invalid flag.
2. Even though the manual indicates that the dynamic margins feature is not
included by default, it is.
3. The "bookie" command doesn't work as expected.
4. Editing a file which contains anything which looks like a tag, results
in the footprint being stored in the first line of the file.
1.12 10/30/89
Bug fixes:
1. Use the "message()" or "messageNwait()" routines instead of "sayerror"
to get rid of the offending "getkey()" call in EPM.
2. Search for the tag definition files modified:
EPM First use the "EPMPATH", then "DPATH".
EOS2 First use the "EPATH", then "DPATH".
E3 First use "EPATH", then "PATH".
3. The ":ledi" macro has an invalid flag (again!).
1.13 10/31/89
Bug fixes:
1. If more than one tag definition file is specified, EPM looses the "Esc"
key or gets a trap 00D due to a problem in GET.EX.
1.20 11/13/89
Bug fixes:
1. Adding a new file to the ring with the "e" command in E3 or EOS2 results
in the command line to scroll down by one entry.
2. After a type 4 tag has been processed the support is not active in E3.
3. When a colon of a tag has been accidentally erased and re-typed, it is
replaced by "&gml.".
Additional functions:
1. Every file in the ring may have its own set of tag definition files.
2. EBOOKIE can be an externally linkable module in EPM.
3. If the dynamic margins option is selected, restore the margins when the
file is moved back to the active position in the ring.
4. Type 5 tags include a file into the document without the tag itself.
5. Each tag may also create lines before the tag.
6. Debugging code is now optional.
7. Detection of incorrect versions of the editor during compilation of
EBOOKIE.
8. Allow more files per ring.
9. Each tag can define a tag or text which is assigned to the "alt-2" key.
1.30 11/24/89
Bug fixes:
1. Fix installation procedure documentation in Changing the Name of the
Default Tag Definition Files.
2. Fix the colors in EPM.
3. Fix ":cletter." tag.
Additional functions:
1. Support to switch off EBOOKIE with the "bookie off" command.
2. Implement third stage of expansion.
Key Expansion level
period required parameters.
enter required parameters (same as period).
space required and common optional parameters.
c_space required and all optional parameters in EPM.
c_enter required and all optional parameters in EOS2 and E3.
3. Implement a user-exit during page_up, page_down, and enter-key
processing.
4. Replace special keys with the appropriate BookMaster symbols.
5. Ship EPM module compiled with version 5.15.
1.31 11/28/89
Bug fixes:
1. Fix ".nameit" in document.
2. Make it work together with E3NOTE.
Additional functions:
1. Implement FOILS5 tags.
2. Include the symbol support by default.
3. Determine the codepage automatically during startup.
1.40 12/07/89
Bug fixes:
1. Pass c_enter to the routine my_c_enter() if no tag has been processed.
2. The "c_w" key does not work when EBOOKIE is installed.
3. The single quote character (') should not be replaced by the BookMaster
symbol "&ssq.".
4. Symbol support should not be started when the DOS version is older than
3.3.
5. Remove EPM temporary fix for other language assist routines.
6. Fix style tags.
Additional functions:
1. Replace colons of non-tags with "&colon." if using BookMaster.
2. Make EBOOKIE an externally linkable module in EOS2.
1.50 01/11/90
Bug fixes:
1. Fix ":gdoc." tag in "foils5.def".
2. Fix cursor position after "&colon." has been inserted in a BookMaster
document.
3. Symbol support is not activated in DOS 3.3.
4. Support is not activated after a forced index creation in E3.
5. The symbol support is not deactivated after a "bookie off" command.
6. The symbol support is not activated when switching from a tag definition
file which does not include the symbol support to a tag definition file
which requires the support.
Additional functions:
1. Add "my_up()" and "my_down()" user-exits.
2. Change symbol support:
o Define name of symbol file in tag definition file.
o Allow a separate symbol file for each set of tag definition files.
3. Configurable tag-characters to allow the implementation of SGML.
4. Make the symbol which replaces the tag-start-character of invalid tags a
configurable option.
5. Implement APAFOIL tags.
6. Footprint may be anywhere at the beginning of the file, as long as there
are only DCF comments (".*") lines in front of it.
7. Add the capability to pull a file into the text before the tag.
8. More than one file can be copied before or after a tag.
1.51 01/15/90
Bug fixes:
1. Can't compile "bkeys.e" when the symbol support is not configured.
2. Host support doesn't work in EPM.
3. The colors are reset to the defaults in EPM.
4. The "bookie on" command doesn't work in OS/2.
5. A "0" character terminates the tag input.
1.53 03/05/90
Bug fixes:
1. Fix the ":li." tag for APAFOIL.
2. The support doesn't work in OS/2 when the symbol support is not
configured.
3. A message "Invalid number argument, Type any key" is displayed when the
constant "my_bkm_search" is set to anything greater than zero, and a
blank line is encountered during the search for tags.
4. Slow response of EPM after the "shift", "ctrl", or "alt" keys are
pressed.
5. Slow keyboard in EPM.
6. The keys defined in mykeys.e don't work in E3 when EBOOKIE is active.
Additional functions:
1. Option to configure the space key to expand all parameters.
2. Force cursor position with the "@" in the lines after the tag, even if
the tag has some parameters.
3. Make the file extensions which trigger the activation of the support
configurable.
4. Split the tag definition files from the "E" stuff and the executables.
5. Add limited attribute support for EPM.
1.54 04/20/90
Bug fixes:
1. EBOOKIE loops when the attribute support is active and a tag-end
character is the last character of the line.
2. The :foilset tag in FOILS5.DEF has an invalid flag.
Additional functions:
1. The "bkmsym" command to replace all special characters of the file with
the appropriate BookMaster symbol.
2. The "index" command together with the "alt_i" key to create a simple
index.
3. Option not to touch the margin setting in E3.
1.60 06/11/90
Bug fixes:
1. Index creation fails for small tag definition files.
Additional functions:
1. Extensive help facility for BookMaster tags and their attributes.
2. Search for additional tag- and include files along the E(PM)PATH, then
PATH (in DOS) or DPATH (in OS/2), then in the directory where the editor
resides.
3. The index file is stored in the directory defined by the TEMP_PATH (in
MYCNF.E or econfig.e), or in the directory where the main tag definition
file has been found.
4. The tag definition files have the extension ".DEF", the skeleton files
".SKL".
5. IPF has been added.
6. The "alt_1" key pulls imbed or setup files in the ring.
1.61 07/01/90
Bug fixes:
1. Temporary path is invalid.
2. The BookMaster :hdref tag misses some attributes.
3. EPM 5.16 ends without any message when the alt_i key is pressed, and no
block mark is active.
Additional functions:
1. If the alt_1 key is pressed on a .using macro, the cursor is positioned
at the active .mod macro in the mocha side-file.
2. Index entries are converted to lower case, except when words are all
upper case.
3. Brackets and double quotes are removed during index generation.
4. The block mark for the index generation is removed after processing.
1.62 07/25/90
Bug fixes:
1. No need to load "attr.ex" for attribute support.
Additional functions:
1. Remove attributes before adding new attributes with the "bkmattr"
command.
2. Make the attribute colors configurable.
3. Add the "off" option to the "bkmattr" command to switch off the
attribute support.
1.63 07/25/90
Bug fixes:
1. Remove STDCNF.E from externally linked module.
Additional functions:
1. Remove attributes before adding new attributes with the "bkmattr"
command.
2. Make the attribute colors configurable.
3. Add the "off" option to the "bkmattr" command to switch off the
attribute support.
1.64 10/26/90
Bug fixes:
1. Fix .im processing for host files. (Thanks to Pat Lockhart for the fix.)
Additional functions:
1. EPM 5.18 attribute support.
2. Create an "Ebookie" action in the action bar of EPM.
1.65 12/13/90
Bug fixes:
1. Several fixes for the attribute support under EPM 5.19.
2. Fix problem with a_2 key.
3. Fix :cletter tags (:loc was missing, behaviour of other tags was not
usable).
Additional functions:
1. Add "my_bkm_keep_index_cases" configuration option.
2. Support symbols in DOS releases older than 3.3.
3. Add "my_bkm_codepage" configuration option.
4. Support to keep tags where they have been typed, don't move them to
column one.
5. Additional help support for BookMaster version 3 tags with the "c_h"
key. Thanks to Mike Temple.
1.66 05/06/91
Bug fixes:
1. Make the attribute support work under EPM 5.20
2. Fix the :cit tag.
3. A variable was not correctly initialized causing the first tag to be
expanded incorrectly.
Additional functions:
1. Search for help file for all tag definition files defined in the
footprint.
2. Use Mike Temples help support in EPM with the a_h key, the c_h key has
been removed.
3. The extension of the imbedded file (with alt_1) now is dependent on the
file type specified in the .im macro.
4. Link the definition files to the extension.
5. Option to automatically do a "bkmattr" command during file load.
6. Add the EBOOKIE Users' Guide as viewable document under OS/2.
1.70 09/16/91
Bug fixes:
1. Make it work under EPM 5.50.
Additional functions:
1. Re-implement the Ctrl_h key for help.
2.0 05/28/92
Bug fixes:
1. Tested with OS/2 2.0 and the latest macro library
Additional functions: NONE.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéWarning Γöé
Γöé Γöé
Γöé Γöé
ΓöéThe attribute support for EPM 5.50 has been temporarily Γöé
Γöéremoved. Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
2.2 03/29/93
Bug Fixes (most fixes thanks to Larry Margolis):
1. Added WANT_EBOOKIE flag so users can easily include or omit EBOOKIE
support via MYCNF.E. Also can set to DYNALINK so users who only use it
occasionally don't have to have BKEYS.EX loaded all the time, but it can
dynamically be linked in when needed. (See comments in MYSTUFF.XMP.)
2. Fixed up mnemonic on action bar so it works with the current set of
macros, and defined the 'B' as an accelerator key (in 5.50 or above) so
it wouldn't hide alt+B as block mark.
3. Restored attribute support for EPM 5.50. Made a change so that
inserting characters at the end of a tag won't include those characters
in the highlighting. Haven't been able to figure out how to make it
work between a pair, but rather than omit the support because of this,
I added a "Fixup attributes" entry to the menu. (I'll see if Jason can
suggest anything.)
4. Proper support for Enhanced_Enter_Keys. Changed default
bkm_attr_colors, since it didn't match the documentation. (Was 92,
light red on a magenta background, which wasn't too readable; EBOOKIE
SCRIPT said the default was "white on pink", which is 95 if pink means
magenta, or 223 if pink means light magenta; I assumed the latter.)
Added a KEEP_HELP_AT_RIGHT option to specify whether the Help menu
should be maintained as the rightmost menu. Assumed a default of 1; you
can change it if you disagree. (Note that this isn't a BKM_ constant,
because other add-ons could use the same flag.) Got rid of all the
Attribute support universals; most weren't used, and the couple that are
I made constants (saves overhead of initializing the universal
variable).
5. Various code optimizations.
6. Deleted some "return 0" at the end of routines where the result was
never used. The compiler always adds a "return" at the end of all
routines, so the explicit "return 0" was a waste of code in many cases.
7. Better fix to link error (so don't lose module number). Deleted the
include of EPMGCNF.SMP and LINK.E; you might want to ship a .ex file
configured that way, but it's wrong for anyone who's recompiling. Also
deleted call to 'loadattributes' from bkm_init, since that gets done by
the DEFLOAD in LOAD.E.
8. Pass along BKMHELP argument to bkm_help(), in case user wants to specify
'a' or 'c'.
9. Added call to fixup_cursor() for GPI version of EPM.
10. Added support for REXX_SYNTAX_ASSIST to BKM_select().
11. Preserved .modify when adding footprint to a new file for quicker quit.
12. EPM shouldn't be searching EPATH.
13. Supply a BKEYS.EX for EPM 5.51 users.
14. Fix 'CALL: unknown Proc MY_ENTER' error
15. Fix startup if file has no extension or filetype.
16. Fix the word wrapping problem.
17. BKEYS.E doesn't compile with "WANT_EBOOKIE = 1", where the code is
included in the base .EX files.
18. my_bkm_ext_def doesn't work correctly, and is not properly documented.
19. Add "bkmsym on" and "bkmsym off" commands, change pulldown
20. Fix query codepage for EPM 6.0
21. The syntax support is incorrectly switched on after a tag is entered.
22. The file IPFTAGS.DEF contained invalid characters.
23. EPM 6.00 needs Dynalink32() instead of Dynalinkc().
Additional functions: NONE
ΓòÉΓòÉΓòÉ 7.5. Planned Enhancements ΓòÉΓòÉΓòÉ
Due to lack of time: NONE.