[[PageOutline]] ||[[Image(wiki:WikiStart:nepmd-icon.png, left)]]|| = 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. ---- [[Image(wiki:WikiStart/Screenshots:16.png, 371px, right)]] == 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. - [http://trac.netlabs.org/nepmd/attachment/wiki/WikiStart/Screenshots/14.png 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. Mode settings - Mode-dependent configuration. - Syntax expansion. - Bracket and expression matching that respects comments and strings. - Coding styles. Highlighting - 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. 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. 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. - Open filename under cursor. 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 for edit, load and save. Disadvantages of EPM (and NEPMD) are: - Limited clipboard size of 64 KB. - 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. 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) 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. - Almost completely configurable. - List box and entry box dialogs via macros. - Call C functions from macros. - Extend macros via faster C functions. ---- == 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 == [[Image(wiki:WikiStart:warpin.png, right)]] === ''Latest version'' === Version 1.24 (2022-04-02): - ftp://ftp.netlabs.org/pub/nepmd/nepmd124_eng.wpi {{{#!comment - https://hobbes.nmsu.edu/download/pub/incoming/nepmd124_eng.wpi - ftp://ftp-os2.nmsu.edu/pub/incoming/nepmd124_eng.wpi }}} - https://hobbes.nmsu.edu/download/pub/os2/apps/editors/epm/nepmd124_eng.wpi - ftp://hobbes.nmsu.edu/pub/os2/apps/editors/epm/nepmd124_eng.wpi 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. [[Image(wiki:WikiStart/Screenshots:10.png, 300px, right)]] === ''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. {{{#!comment The rest of this section describes where to get dictionary files for testing from. These Netscape dictionaries work with EPM and oslexam.dll: - ftp://ftp.netlabs.org/pub/nepmd/dicts/ Other dictionaries either don't find a word or make EPM crash. With older NEPMD versions, download dictionaries and unzip them to ''myepm\spellchk''. Then open the ''Configure dictionaries...'' dialog to add a language. Original, outdated links for Netscape dictionaries: - http://service.boulder.ibm.com/asd-bin/doc/en_us/nsdicts/f-server.htm - http://ftp.leo.org/historic/comp/os/os2/boulder/netscape/nsdicts/ Link for !XyWrite dictionaries: - http://www.xywrite.com/dics/index.htm With oslexam.dll, IBM Works and most Netscape dictionaries work. Most !XyWrite dictionaries don't work. }}} === ''Outdated versions'' === Version 1.23 (2021-09-30): - ftp://ftp.netlabs.org/pub/nepmd/nepmd123_eng.wpi Version 1.22 (2021-03-15): - ftp://ftp.netlabs.org/pub/nepmd/nepmd122_eng.wpi Version 1.21 (2020-03-16): - ftp://ftp.netlabs.org/pub/nepmd/nepmd121_eng.wpi Version 1.20 (2019-03-21): - ftp://ftp.netlabs.org/pub/nepmd/nepmd120_eng.wpi Version 1.19 (2018-10-19): - ftp://ftp.netlabs.org/pub/nepmd/nepmd119_eng.wpi Version 1.18 (2018-02-20): - ftp://ftp.netlabs.org/pub/nepmd/nepmd118_eng.wpi Version 1.00 (2002-11-05): - ftp://ftp.netlabs.org/pub/nepmd/nepmd100_eng.wpi === ''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'' === [[Image(wiki:WikiStart:os2-warp-3-logo.png, 100px, right)]] This WarpIN package was assembled from the EPMBBS files. The latest available version is older than EPM 6.03b of Warp 4. - ftp://ftp.netlabs.org/pub/nepmd/nepmd_oldbins.wpi - https://hobbes.nmsu.edu/download/pub/os2/apps/editors/epm/nepmd_oldbins.wpi - ftp://hobbes.nmsu.edu/pub/os2/apps/editors/epm/nepmd_oldbins.wpi 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 [http://svn.netlabs.org/repos/nepmd/trunk/src/netlabs/install/epmsp.cmd 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): - http://trac.netlabs.org/nepmd/browser Current revision: - http://svn.netlabs.org/repos/nepmd/trunk/ Any other revision, here r3165: - http://svn.netlabs.org/repos/nepmd/!svn/bc/3165/trunk/ === ''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 --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 ` 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 : {{{ cd nepmd svn log -r4978:HEAD -v > }}} ---- == 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 [http://trac.netlabs.org/nepmd/newticket post] your bugs on the [http://trac.netlabs.org/nepmd/report/6 bug tracker]. Before posting bugs, you must log in with your netlabs.org account. If you do not have a login id, you can request one at [http://www.netlabs.org/en/site/member/member.xml]. The decision was made to use [http://svn.netlabs.org/nepmd/report 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 [http://trac.netlabs.org/nepmd/prefs Preferences page] was added. === ''Newsgroups and mailing lists'' === For questions, you could use the user newsgroup on: - news.gmane.org.netlabs.nepmd.user If you compile NEPMD yourself, you could use the developer newsgroup on: - news.gmane.org.netlabs.nepmd.devel For more infos about the lists and for the newsgroup or mailing list interfaces, see here: - http://wiki.netlabs.org/index.php/Mailinglists The NEPMD list names are ''nepmd-user'' and ''nepmd-dev''. === ''Web sites'' === - https://www.os2.org - https://www.os2world.com === ''Presentations and review'' === - [ftp://ftp.netlabs.org/pub/nepmd/presentations/nepmd_wse2002.zip Warpstock Europe 2002, Arnhem] - [ftp://ftp.netlabs.org/pub/nepmd/presentations/nepmd_wse2006.zip Warpstock Europe 2006, Cologne] - [ftp://ftp.netlabs.org/pub/nepmd/presentations/nepmd_wse2008.zip Warpstock Europe 2008, Dusseldorf] - [http://www.os2ezine.com/20030216/page_3.html Douglas Clark's review about NEPMD 1.00] ----