Changes to EEL Primitives and Subroutines in Epsilon 10
Epsilon now providers a general-purpose finder function called general_matcher( ). (See "Completion Internals" in the manual for a description of finder functions.) An EEL function can perform completion on some arbitrary list of words by putting the list of words in a buffer named _MATCH_BUF (a macro defined in eel.h) and then providing general_matcher( ) as a finder function to a subroutine like comp_read( ).
There have been several changes to finder functions and the primitives that support them:
A finder function traditionally receives a set of flags that may include STARTMATCH, EXACTONLY, and LISTMATCH. Now it also receives the set of flags provided to comp_read( ), including CAUTIOUS, COMP_FOLD, MUST_MATCH, PASSWORD_PROMPT and so forth, so it can alter its behavior if needed. For one example of this, general_matcher( ) uses the COMP_FOLD flag that it receives to decide whether matching should be case-sensitive or not.
The first parameter to the buf_match( ) primitive is now a pattern of the
sort that fpatmatch( ) accepts:
The file_match( ) primitive now accepts a set of flags similar to
other matching functions. Use STARTMATCH to begin returning a
new set of file names. Use EXACTONLY to return exact matches,
not prefix matches. (Previously it accepted
To support older Epsilon extensions, there are macro definitions for f_all_match( ) and the two deleted flags above.
The EEL interface to syntax highlighting has changed. The highlighting
function for a mode may now indicate that some other part of the buffer
requires highlighting, or that it's colored additional areas of the buffer,
by modifying the
Epsilon's Internet commands previously used functions from an external DLL called epsnet.dll. These functions have been moved into Epsilon. Several have also changed slightly.
The possible values for the readonly_warning variable now have macros to represent them. They indicate what Epsilon should do when editing a read-only file:
The move_level( ) subroutine and its mode-specific versions
such as html_move_level( ) now take an additional parameter