wiki:WikiStart

netlabs.org EPM Distribution (NEPMD)

NEPMD is an add-on for EPM, the Enhanced Editor of OS/2. NEPMD

  • adds the EPM loader to start EPM in a special environment
  • adds a library DLL
  • replaces all of the original macro files.

The installation copies the EPM loader to a path, which comes before the original EPM path in the PATH statement. That makes it replace the original EPM for the WPS and CMD, without physically replacing it.

NEPMD turns the old EPM into a highly-configurable programmer's editor.

Standard EPM

  • is hard to handle
  • is hard to configure
  • comes with poor default configuration
  • has many bugs
  • is not SMP-aware
  • lacks important features.

NEPMD

  • tries to behave more intuitively
  • allows for configuration on-the-fly
  • has a common default configuration and provides 3 presets
  • fixes or works around most of EPM's bugs
  • marks the executable for single-processor operation
  • provides many new features
  • is suited for both programmers and users.

1. Features

It comes with features and bug fixes for both programmers and standard users:

General

  • Countless fixes and workarounds for the original EPM.

Configuration

  • User-friendly default configuration.
  • Presets to ease access to the large number of settings.
  • All setting are changeable on-the-fly without recompilation.
  • Export and import settings.

Recompile

  • To change behavior that is not prepared to be configured and for development, macro recompilation was made easy and fast, in most cases without a restart.

Mode determination

  • Mode instead of just file extension (filetype).
  • Define mode determination rules, including file specs, signatures and shebangs.
  • Distinguishable highlighting from mode.
  • More modes, especially for OS/2.

Mode settings

  • Mode-dependent configuration.
  • Syntax expansion.
  • Bracket and expression matching that respects comments and strings.
  • Coding styles.
  • Many Set* commands that can be applied for modes or single files.

Highlighting

  • Made highlighting stick with a file.
  • Separated colors from keywords.
  • Extended keywords with much more highlighting modes.

Menus and keys

  • New and changeable keysets.
  • New and changeable menus and toolbar.
  • Changed keyset to accelerator keys for to support more key combinations.
  • Automatic adoption of accelerator key strings in menu items on changing key definitions.
  • Listing of current key definitions.

Search

  • Additional search options: automatic case, all files, comments, literals.
  • Search history.
  • Exchange Search and Replace strings of Search dialog.

Bookmarks

  • Extended bookmarks dialog that includes all loaded files, restored positions, undo positions, cursor stack positions, permanent and non-permanent bookmarks.

Backup

  • Advanced backup mechanism.
  • Restore backup files via popup menu.
  • Garbage collector for old backup files.

Marking

  • Extended marking configuration.
  • Presets for Advanced marking and CUA marking.
  • Optionally support 4os2 mouse marking.
  • Optionally overtake mark as search string or activate search in 'Marked area'.

Format

  • Line ends.
  • Line wraps.
  • Change encoding.
  • Spell check.
  • Select coding styles for syntax expansion.
  • Reflow text.
  • Many more.

Open extracted string (Alt_1)

  • Jump to error from a compile log or output to a shell window.
  • Open filename under cursor, optionally with a search string or position.

Find definition

  • Jump to definition for some modes, e.g. C functions, typedefs, defines, and structs.
  • May replace tags for defined modes.

List procedures (tags)

  • Display procedures etc. in current file and jump to it.
  • Find procedures in selectable filespecs and store them for fast access.
  • Handles comments and literals correctly.

Command shell

  • Improved command shell features.
  • Restorable environment and contents.
  • Filename completion.
  • 4os2 support.
  • Note: Posix shells work somehow but don't give a prompt.

Misc.

  • Copy chars from the line above or below.
  • Move lines, chars, expressions.
  • Save and restart all EPM windows.
  • History lists for edit, load, save and search.
  • Max. file size is about 60 MB. (Note that EPM releases all of its memory only after all instances are closed.)

Disadvantages of EPM (and NEPMD) are:

  • Limited clipboard size of 64 KB, but copying large texts via Advanced marking works between buffers, attributes included.
  • Poor highlighting compared to other editors. (It suffices in most cases. Most significant drawback is that multi-line environments can't be highlighted.)
  • No real folding (only pseudo folding with an 1 pixel font).
  • No gutter with line numbers.
  • No automatic display of current section, but TagScan can open a dialog for displaying and jumping to others.
  • Limited amount of menu items, caused by exhaustion of an internal resource. Therefore the Preferences popup menu was added. (Eventually this can be worked around by linking another .ex file.)
  • Reflow (beautify) still exists for modes TEXT and CONFIGSYS only.

While the clipboard limitation could be worked-around, the other features can't. Note that IBM hasn't published the sources for the executables, just for the macros.

Advantages of EPM (and NEPMD) for EPM programmers are:

  • Macro language that feels like REXX but is much faster.
  • Much faster than e.g. recent Delphi editors, but slower than e.g. VSlick.
  • Source code for all macros.
  • List box and entry box dialogs via macros.
  • Call C functions from macros.
  • Extend macros via faster C functions.
  • Extend macros via external applications.

Advantages of NEPMD for users are:

  • Almost completely configurable.
  • High quality of supported features.

2. Changes

Most important changes of version 1.24 compared to 1.23 are:

  • Mode: Added Shebangs and signatures, improved BIN, added ASSEMBLER.
  • Search: Added configurable exclusion of literals and comments, added history.
  • Shell: Save and restore of file and environment.

See the Changes page.


3. Screenshots

See the Screenshots page.


4. Installation, update and prerequisites

EPM 6.03b should be installed by your OS/2, eComStation or ArcaOS installation program. As an (not recommended) alternative, you can also install the EPM package for Warp 3 users.

WarpIN should be installed, preferably the latest version.

Any newer version can be installed over an already installed one without uninstallation.


5. Downloads

Latest version

Version 1.24 (2022-04-02):

It can be considered as a beta version of 2.00. The only reason, why it's not named 2.00, is that it lacks updated documentation.

Spell-check dictionaries

Since version 1.19, manual download of dictionary files is not required. It's easier to use the menu and the dialogs for that.

To download and install dictionaries, execute Format -> Spell check -> Configure dictionaries... Press Edit..., followed by Download... Then select a language. wget is required for that.

Outdated versions

Version 1.23 (2021-09-30):

Version 1.22 (2021-03-15):

Version 1.21 (2020-03-16):

Version 1.20 (2019-03-21):

Version 1.19 (2018-10-19):

Version 1.18 (2018-02-20):

Version 1.00 (2002-11-05):

Future releases

NEPMD has changed extremely, compared to the first release version 1.00.

Updated documentation is needed to find how to take advantage of the many new features. Some are self-explaining (e.g. by the menu items), but some are not. Therefore the version 2.00 is planned to ship with a usable set of documentation files.

For people who like to try out new features without any existing documentation, the versions from 1.18 on were released.

The version 2.00 beta will be released when everything except a recent documentation is included. This will include also a major change of the macro filenames, where macro code is placed and how files are assigned to WarpIN packages.

EPM package for Warp 3 users

This WarpIN package was assembled from the EPMBBS files. The latest available version is older than EPM 6.03b of Warp 4.

To install it, copy it to the directory of the main WPI file before starting the installation.

Symmetric Multiprocessing

To avoid crashes during scrolling on SMP systems, the EPM.EXE executable needs to be marked as single-processor type. That executable is usually located in \OS2\APPS. Other executables, distributed by NEPMD, are not affected.

Starting with version 1.22, the NEPMD does that on installation. For other cases, it's possible to download this CMD file and execute it manually. Ensure that the line ends are set to CRLF, otherwise REXX returns rc = 13. To achieve that, e.g. load it into EPM and save it.


6. Source code

Browse files

Trac browser (.cmd files are not displayed):

Current revision:

Any other revision, here r3165:

Get all files

Check out the trunk. That suffices in most cases:

md nepmd
cd nepmd
svn checkout http://svn.netlabs.org/repos/nepmd/trunk

This creates the trunk directory inside the previously existing nepmd directory.

If you really want to check out the entire archive (trunk, tags and branches):

svn checkout http://svn.netlabs.org/repos/nepmd

This creates the nepmd directory inside a previously existing directory.

If you have write access for the nepmd repository, execute:

svn checkout http://svn.netlabs.org/repos/nepmd --username <netlabs.org_user> --password <netlabs.org_password>

After once logged in, the hidden .svn directory is created with the database. The next time, you just execute:

cd nepmd
svn update

Branches and tags

In the past it was avoided to create branches. Additionally, with the change from CVS to SVN, it doesn't make much sense to create tags copied from the trunk anymore. A special version can always be checked out by adding the -r <rev_num> option.

Revision number Version number Build date time (local)
4977 1.24 2022-04-02 10:30:00
4724 1.23 2021-09-30 08:00:00
4426 1.22 2021-03-15 17:30:00
3918 1.21 2020-03-16 08:30:00
3543 1.20 2019-03-21 08:30:00
3209 1.19 2018-10-19 21:30:00
2948 1.18 2018-02-20 21:00:00

Change log

Subversion makes it easy to view detailed changes. The following example writes all changes from 1.24 to the current version in the sources to <filename>:

cd nepmd
svn log -r4978:HEAD -v > <filename>

7. Status of the current repository

The trunk contains the most recent files. It should always be kept compilable and installable. In the past, the trunk version was always of much more value than any outdated version.

Documentation

The NEPMD help files are outdated. The same applies to the EPM help, where much of its content refers to the old 16-bit version for EPM 5.

Adding recent help files to NEPMD is planned, but will take much time.

National language support

The current version of the NEPMD is not prepared for translation. Output strings are not separated from source code, so it makes no sense to translate it now.


8. Help and information

Bug tracker

You're welcome to post your bugs on the bug tracker.

Before posting bugs, you must log in with your netlabs.org credentials. If you do not have a user id, you can request one at http://www.netlabs.org/en/site/member/member.xml. That didn't work since a long time, so go to the netlabs.org home page, scroll down to Contact and use the found email address for to request a netlabs.org membership with your preferred user id.

The decision was made to use Trac's bug tracker instead of xTracker, which is dead now. If you want to receive email notifications when your bugs were changed, first login and then ensure that your email address on your account's Preferences page was added.

Web sites

Presentations and review


Last modified 16 months ago Last modified on Dec 4, 2022, 7:10:22 PM

Attachments (3)

Download all attachments as: .zip