The EHP editor is an editor written on a HP UNIX workstation.
It has been ported to OS/2 2.x and higher and this is release 1.4c.
The version (except the regular expression pattern matching module)
should also be compilable with DOS.

You will find the executables including online documentation in OS/2 .INF 
format and the DLLs needed (EMX stuff) in the file ehp14aexe.zip, whereas the
source code is delivered in the file ehp14asrc.zip

Since the release of 1.4a, EHP is shareware. You may freely copy and 
distribute it, but using it longer than a test period of 4 weeks is illegal 
without registering EHP. To register, send $10 or DM 10,- (Note: You are 
better off sending DM :) and your EMail address to

		Axel Uhl
		Weinbrennerstrae 108
		76185 Karlsruhe
		Germany

The registration allows you to use all further releases of EHP unlimited and 
will place you in the lucky position of receiving the latest updates of EHP 
directly UUENCODED by EMail (please write, if you don't want the latter, e.g. 
due to EMail cost).

Note, that a small part (namely the regular expression module) is taken from 
the FSF. So regard their copyleft when redistributing EHP.

If you also get the source code, the package can be compiled using EMX GCC
0.8e or higher.

Install procedure:
Unpack the file using unzip utility. Copy the .exe files and the tasten.inf 
file to a directory of your choice (best one contained in your PATH) and set 
the environment variable EHPINIT to something like

  set EHPINIT=autoind keys xxx\tasten.inf

where xxx represents the path where you put the tasten.inf file. If you don't 
have installed emx, you have to copy the .DLL-files to a directory contained 
in your LIBPATH statement, e.g. to \OS2\DLL. Copy the online documentation 
file ehp.inf to a directory contained in your BOOKSHELF environment variable.

Changes of release 1.4c compared with release 1.4b:
---------------------------------------------------

- A bug with join and paragraph reflowing has been fixed. When the line
  after the current line started with exactly one blank followed by a
  non-blank character, then join deleted one word after joining the lines.

- Colors are adjustable via the environment variable EHPINIT. E.g. you may
     set EHPINIT=clr_text 240 clr_frame 2
  which will display the text black on white with a red frame. See the
  online documentation for details.

- Some bugs in memory allocation have been found and fixed, that could have
  caused errors in the mamory layout and may have been the reason for some
  spontaneous crashs of EHP.

Changes of release 1.4b compared with release 1.4a:
---------------------------------------------------

- Deleting a block now keeps it in an internal buffer associated with the
  window the block was deleted from. This buffer is irreversibly deleted, if
  new block boundaries are defined. Furthermore, this buffer is not stored in
  the config.ehp file. Thus, quitting and restarting EHP also kills these
  buffer contents. The deleted block can be reinserted by using the block
  copy command (default key Ctrl-b c).
- A 'bug' concerning newlines and spaces at the beginning of lines has been
  fixed. When a line was splitted at a point, where to the left there were
  only blanks, then the remaining blank line was not considered empty. This
  in particular yielded unexpected results with the paragraph reflowing
  command, which doesn't recognize such a line as a paragraph separator.
- Clicking with the mouse on a non-active window does no longer immediately
  place the cursor at the location pointed to. A second click is now
  required.
- A bug concerning macro expansion has been fixed. When a repeat command
  was nested in a macro and was the last command of that macro, then the
  macro instead of the repeat was repeated.
- The backup copy is now really a copy and not the renamed old file. This 
  has, especially with OS/2, the advantage, that you now can edit batch 
  files, to which a workplace object is linked. The link will be OK after 
  editing, which was a drawback in the former version, where the workplace 
  object was set to the backup copy and thus could not be executed anymore 
  due to the '.bak'-ending. This advantage is paid by some little extra effort 
  for explicitely copying the file.
- Automatic linebreak mode can now be made the default by a new switch 
  'linebrk' of the EHPINIT environment variable.

Changes of release 1.4a compared with release 1.4:
--------------------------------------------------

- A minor bug in linebreaking mode has been fixed (the window width was not
  fulle usable, one character was missing).

Changes of release 1.4 compared with release 1.3:
-------------------------------------------------

- A bug in deleting a rectangular block has been fixed.
  The last correction contained a new weird bug. Now it should work.
- Trying to match a parenthesis (CTRL-p), to which no matching one exists
  causes a beep now.
- Skipping a word now treats consecutive word separators as one word.
  Hence word skipping becomes more usable because it's just faster.
  If skipping right when standing on the last word in a line goes to the
  end of the line. This word-skipping has also been applied to deleting
  a word.
- When a block was marked with a mouse, and the mouse was moved beyond
  the last line of the text and back up again, then the last line
  was multiply drawn. This bug was found and fixed.
- When one letter was inserted multiply and fast (e.g. by keyboard repeat
  or TAB, which inserts multiple spaces), and horizontal scrolling appeared,
  then the display was corrupted (parts of the current line right to the
  cursor got shifted too much right). It's fixed.
- Highlighting was not removed in replacing, if the confirmation was
  answered with 'No'. Fixed.
- The join command had some bugs. When a sequence of empty lines followed the
  current line, then the empty lines were all deleted. This has been fixed.
  Furthermore, when join was issued in an empty line, the cursor appeared
  in the 2nd column afterwards. This is now corrected, it will be placed in
  the 1st column as expected.
- The confirmation of a yes/no-question with the mouse was removed and
  is no longer possible. It caused serious problems when the application
  terminated, which I was not able to resolve. Since at least I didn't use
  that feature frequently, I decided to renounce it.
- Indenting of a block did not mark the text as modified. Fixed.
- The keyboard was not correctly initialized, especially for the utility
  km. Fixed.
- The mouse is no longer blocked for the duration of one command after
  a macro has been executed
- EHP has two new features, which are closely related to each other:
  an automatic line-breaking mode and a command for reflowing a paragraph.
  Linebreaking is toggled with CTRL-s l, while the current paragraph
  (terminated by the next empty line) is reflowed by CTRL-D with the
  initial keyboard binding. See also the online help (EHP.INF) for
  a more detailed description.
- When a shell command was executed in SHELL mode or by passing a block
  to a filter, then the CTRL-s and CTRL-c commands did not work anymore.
  This bug has been fixed.

Known bugs:
-----------

- When a mouse-click is performed while a paragraph reflow is running, the
  cursor is moved to the clicked-to position and paragraph reflowing
  continues in this paragraph.

Hints:
------

- Look at the calc.zip file on HOBBES. It provides filter function for
  evaluating expressions. This is useful in connection with filtering
  of blocks (CTRL-b f). You can so evaluate expressions occurring in
  a text contained in an EHP window.

Things on my TO DO list:
------------------------

- Online help via the OS/2 HELPNDX envorionment variable and the
  corresponding .NDX-files. The code has already been prepared but has to be
  interfaced with the block control of EHP. The idea is to mark a word, on
  which one wants to have help, as a block and then issuing a help command.
  This browses all available .NDX-files for the word and opens a VIEW session
  for displaying the help topic.

... lots more, but from who I can steal the time?

Please report bugs, hints, statements, comments and other feedback to me via
e-Mail to auhl@fzi.de ! I'm lucky to hear about everyone using EHP.

Enjoy,
Axel (auhl@fzi.de)
