****************************************************************************
*
* MED - Programmers' Texteditor for OS/2 and Windows 9x/NT4.0
*
* Copyright (c) 1999 by Matthias Pfersdorff
*
* med@utopia-planitia.de
* www.utopia-planitia.de
*
****************************************************************************

History of changes

----------------------------------------------------------------------------
VERSION 1.26   Jun 30 1999
----------------------------------------------------------------------------

NEW: It is now possible, to start tools without output redirection (useful
     for PM applications). The output window of a previous started tool
     will be kept open, if a tool is started without redirection.

NEW: Flat toolbar buttons. You can switch to the standard buttons, by
     disabling the "Flat" option in the toolbar's context menu.

CHG: The "Home" button of the file selector now changes to the directory of
     the active document, if MED was started from the installation
     directory. Otherwise, "Home" changes to the start directory.

FIX: "Jump To Error" now works, if the compiler outputs file names
     without path.

FIX: Autosave

FIX: ASCII Code display for TAB character


----------------------------------------------------------------------------
VERSION 1.25   Mar 04 1999
----------------------------------------------------------------------------

NEW: The MED file selector allows files to be opened in read only mode. In
     this mode you can navigate and select, but you can not make changes to
     the file.
     A "read-only" symbol in the text window's status display shows the
     current edit mode. You can toggle the edit/read-only mode by clicking
     that symbol.

NEW: The "read-only" symbol is also shown for files, that are write protected
     at file system level.

NEW: The command line option "-r" sets MED to a global read-only mode. In this
     mode, all opened files are read-only. You can not switch to the
     edit mode during the editor session.

NEW: Trying to save a read-only file automatically calls the function "Save as".

FIX: Vertical scrollbar bug.

FIX: Loading med.lru from the configuration directory.


----------------------------------------------------------------------------
VERSION 1.24   Feb 15 1999
----------------------------------------------------------------------------

NEW: Function "Select code block" selects the text between brackets.
     (Block / Select code block)

NEW: A tripple click with the left mouse button selects the
     a whole line.

NEW: Undo optionally restores only the end positions of cursor
     movements and typing sequences.
     (Options / Settings / Edit / Undo)

NEW: Function "Delete to begin of word" deletes all characters from
     the current cursor position to the begin of a word.
     (Edit / Word / Delete to begin of word)

CHG: The timestamp file extension used in backup file names is better
     readable now and contains the year in long format (year 2000!).


CHG: A selection is now printed with the actual line numbers.


----------------------------------------------------------------------------
VERSION 1.23   April 1 1998
----------------------------------------------------------------------------

NEW: Syntax Highlighting now supports two multi line comments
     (for example { } and (* *) in PASCAL).

CHG: For FAT filesystems, the name of a backup file with number
     extension is now generated by cutting off the original
     extension/filename if necessary.

           Examples:
           ---------
           test.cpp  -> test.c~1
           12345678  -> 123456~1


and (of course) several minor bug fixes....


----------------------------------------------------------------------------
VERSION 1.22   January 5 1998
----------------------------------------------------------------------------

NEW: The C++ Section Browser optionally displays the class name for
     each function found in a source file.
     (s. Option "Class names" in Section Browser)

NEW: fuzzy search option in function "Find in Files".

NEW: Mac line format support.

NEW: line format conversion functions (Dos, Unix, Mac).
     (s. menu "Edit->Text->Convert line format")

NEW: the line format (Dos, Unix, Mac) of the active text is displayed
     in the status bar.

NEW: support of files with inhomogeneous line format.

FIX: when a file is saved in a different line format, the new
     line format is used also in the loaded file.

FIX: "Find in files" now calculates line numbers correctly in
     files with inhomogeneous line format.

FIX: internal C++ parser.

FIX: the '^' character can be entered by pressing [^][SPACE].


----------------------------------------------------------------------------
VERSION 1.21   November 7 1997
----------------------------------------------------------------------------

NEW: Option "Restore window positions". With this option enabled, the
     window positions of documents are saved between sessions, and
     automatically restored at startup.
     (Notebook "Settings->Startup")

NEW: Option "Convert new tabs to spaces". With this option enabled, new
     inserted tabs are converted to the equivalent number of spaces.
     (Notebook "Settings->Edit->Tabs").

CHG: Option "Persistent selektion" has been moved from the "Settings"
     notebook to the menu "Block".

FIX: internal C++ Parser.


----------------------------------------------------------------------------
VERSION 1.20   September 16 1997
----------------------------------------------------------------------------

NEW: The internal C/C++ Parser has been rewritten: The Section Browser
     is now able to display functions, classes, type definitions and
     defines. A section's name is displayed in the Section Display, as
     long as the cursor is located inside the section's scope.

     ****************************************************************
     * The "Jump to section" functionality works now for functions, *
     * classes, type definitions and defines.                       *
     ****************************************************************


     Note:
     -----
     You can no longer define your own regular expressions to locate
     sections in C/C++ files (keywords "sectionRegexp" and
     "sectionBrowserRegexp" in "med.syn").
     The Section Browser no longer displays a function's parameter list.

NEW: MED now supports hard tabs. Hard tabs can be made visible (option
     "Visible Tabs" in menu "Options"). The function "Convert blanks
     to tabs when saving" is now obsolete.

NEW: Paths containing slashes as path separators (UNIX) are automatically
     converted to OS/2 paths (backslashes as path separators).

NEW: The Tool Output window can now catch STDOUT and STDERR
     simultaneously.
     (s. notebook "Tool-Configuration", page "Options")

NEW: "Reload" function in menu "File".

NEW: The File Selector now maintains two independant paths, one for
     loading files, the other for saving files at a new location
     (Save as). The paths are stored in the MED configuartion.

CHG: Data send to MED at startup via the pipe operator are now interpreted
     as lines of text and inserted in a new text buffer. Interpretation as
     file names can be forced by the commandline switch "-l".

CHG: The functions "Delete/Truncate Word" can now be used also to delete
     groups of word separators.

CHG: The automatic cursor positioning functionality has been rewritten.

CHG: The function "Find in Files" can now be used also to search for
     files. The entry field "Search for" is left blank, while the entry
     field "In file" contains the name of the file to be searched.

CHG: In the dialogs "Print formatted/raw" the option "Block" is
     now automatically enabled, when a block is marked in the
     active text buffer.

CHG: The max. value for the option "Ignore keyboard input older than X ms"
     is now 2000 ms.

CHG: Pressing the [POS1] key once places the cursor to the first non blank
     character of the current line. Pressing [POS1] again places the
     cursor to the begin of the current line.

FIX: MED used to throw an error message in the Backup function, when the
     backup path was set to "." and the backup count was set to 1.

FIX: Undo of deleting characters in overwrite mode.

FIX: Reformat text.

FIX: Tool working directory.

FIX: Undo of "Fill block".


----------------------------------------------------------------------------
VERSION 1.19   May 21 1997
VERSION 1.18   May 17 1997
----------------------------------------------------------------------------

1.19 FIX: codepage 437 bug
1.19 FIX: filters in Fileselector-Paths could overwrite backup
          path

WEB: new versions of MED can be downloaded from the MED Homepage:

     http://www.utopia-planitia.de

NEW: The function "Find in files" is used mainly to search for a string
     in files, that are *not* loaded in the editor (like grep at the
     command line) and to generate a color coded result list. For
     instance, "Find in files" can give you a quick overview, where and
     how often calls to a C-function are made in all source files
     of a project, without having to load all files in the editor.

     However, there is an option, that allows you to search only
     in the textbuffers to generate the result list.

     More options and features:
     --------------------------

     - "regular expressions", "whole words only" and "ignore case"
       capabilities like the normal Find function.

     - the result list may contain the textlines with line numbers
       or the filenames only, in which the target string was found.

     - autoload files, in which the target string was found.
       Optional you may be asked before the files are loaded.

     - recursive search in subfolders. When the MED Project-Manager
       is implemented, there will be an option, to search only in
       project folders.

     - the result list can automatically be cleared before the next
       search, or extended by the result of the next search.

     - saving the result list

     - userdefined filters and paths (same as in the file selector)

     - display the number of strings/lines/files that were found

     - copy the active line of the result list to the system
       clipboard ([CTRL+Ins])

     - doubleclicking the active line of the result list loads
       the file (if not already loaded) and jumps to the line/col,
       where the string was found.

     - configurable result list font (drag'n'drop)

     Note:
     -----
     The "Find in files" dialog is not modal and can be resized.
     The dialog has an entry in the OS/2 window list.

     (s. menu "Search->Find in files...")


NEW: The Section Display has been moved to a combobox in the
     toolbar. The combobox dropdown list contains the section
     names of the active textbuffer and can be used instead
     of the Section Browser in many cases. The combobox
     entryfield can be used for incremental search.

     The dropdown list can be activated with the default
     key [F12]. You can change this key in med.kbd for
     the function name "sectionCombo".
     The dropdown list can be closed without a selection
     by pressing [ESC] or [F12].

     The position and size of the combobox is calculated automatically
     when the application main window is resized. Some toolbar icons
     may be hidden to provide enough space for the combobox. If you
     are using a toolbar with many icons, you should increase
     the toolbar's height in the "Settings" notebook, page "Toolbar/Size".
     If you don't like the combobox, you can switch it off in the
     toolbar's context menu (activated by a click with the right mouse
     button on a free spot in the toolbar).

     The combobox font can be changed via drag&drop: the font must
     be dropped on a free spot in the toolbar, not on the combobox
     itself!

     Note:
     -----
     The Section Display combobox is not availible in vertical toolbars.



NEW: Picking a filename from a textbuffer and loading the file in a
     new buffer. If the filename contains a relative path (or no path),
     the file is searched relative to the path of the text,
     from which the filename was taken.
     This feature is very useful to quick access include files:
     place the cursor anywhere to the include filename and then press
     [CTRL+KO] or doubleclick with the left mousebutton while
     pressing [CTRL+ALT].
     (s. menu "File->Open...->Pick filename from textbuffer")


NEW: Skeleton File support. A skeleton file is loaded automatically
     when a new textbuffer is created or an empty file is opened.
     This is useful for setting up a standard header in a new
     file. Skeleton files must be located in the MED
     configuration directory (this is where med.cfg resides)
     and have a filename like this:

     skeleton.X

     The X substitutes any file extension. The extension is used to
     determine the skeleton file to be loaded.

     Examples:
     ---------

     skeleton.c    -> is loaded when a new C source file is opened
     skeleton.pas  -> is loaded when a new Pascal source file is opened

NEW: MS Windows Codepage support:

     - convert text from OS/2 default codepage to MS Windows codepage
       and vice versa (menu "Edit->Text->Convert codepage")

     - activate MS Windows codepage for displaying/editing text
       (menu "Window->Codepage")

     If a MS Windows text is to be edited, you can activate the
     MS Windows codepage (in case the text is still used under
     Windows) or you can convert the text to the OS/2 default codepage
     (in case the text is used only under OS/2).


NEW: Window Monitor option "Sort by filename"
     (s. "Settings->Window Monitor")

NEW: "Capitalize block" function transforms the first character of all
     words in a block to upper case. The remainder will be converted
     to lower case.
     (s. menu "Block->Convert->Capitalize block")


NEW: "Fill block" function fills a block with a requested character.
     If no character is entered, the block is filled with spaces.
     (s. menu "Block->Convert->Fill block")

NEW: Commandline option "-m macroName1[;macroName2;...]" launches
     one or more macros after all files have been loaded at
     program startup.

     Note:
     -----
     The name of a macro can be entered in the Macro Recorder
     or the Macro Manager (button "Edit").


NEW: "indent/unIndent/indentBlk/unIndentBlk" functions operating on a
     single line or a line/column block.
     Instead of tab positions, the word positions in the lines
     above the current line/block are used to calculate the
     indenting positions, until the first visible line of the window
     is reached.

     The line/block is indented/unindented at the current cursor
     position.

     Example: Indent line
     --------

     printf("hello\n");               //   Hello
     for(;;)
       printf("world!\n");// World
                          ^
                          |
                          cursor position before Indent

       .
       .
       printf("world!\n");            // World
                                      ^
                                      |
                                      cursor position after first Indent

       .
       .
       printf("world!\n");                 // World
                                           ^
                                           |
                                           cursor position after 2nd Indent


      (s. menu "Edit->Line->Indent/Unindent" and
          menu "Block->Indent/Unindent")


NEW: if the screen resolution has changed, MED automatically restores
     default values for size/position/font of the main window and
     the configurable dialogs.

     Note:
     -----
     This default values can be restored anytime by pressing
     [SHIFT+CTRL] during startup of MED.


NEW: path definitions may now contain environment variables
     (userdefined paths of the fileselector, backup paths, tool path,
     tool working directory). An environment variable is denoted by
     a '%' character as pre- and postfix.

     Example:
     --------
     %TMP%\backups

NEW: the Fileselector now accepts any filter in the filename entryfield.
     Type in a filter and press [CTRL+Return] to activate it. The filter
     is *not* inserted into the userdefined filter list (menu "Filter"
     of the fileselector menubar). This helps to keep the userdefined
     list clean of rare used filters.

     After functions that call the fileselector with a special
     filter (like *.mac when saving or loading macros), the
     last used filter is restored.

NEW: a column block can now also be marked with [SHIFT+ALT+PgUp] and
     [SHIFT+ALT+PgDown].

NEW: the Window Monitor may optionally be added to the OS/2
     window list.
     (s. notebook "Settings->Window Monitor")

NEW: the Tool Output window may optionally be added to the OS/2
     window list.
     (s. notebook "Tool Configuration->Options")

NEW: the textwindow's context menu can be opened by pressing
     [SHIFT+F10].

NEW: option "Go to next line when reaching end of line". This option
     configures the [Right Arrow] cursor movement. If enabled,
     the cursor is placed to the start of the next line when the
     end of a line is reached. If not enabled, the cursor can be
     moved past the end of a line (default).
     (s. notebook "Settings->Edit")

NEW: the wordwrap function now has private word separators. The
     word separators define the positions, where a line may be
     wrapped. By default, there is only the space character
     in the word separator list.
     (s. notebook "Settings->Edit->Word wrapping")

CHG: "Save/Restore cursor position" now operates global (like Anchors).

CHG: the WORDSTAR-like key combinations don't need the modifier
     key to be still pressed, when the second key of the key combination
     is pressed.

     Example: [CTRL+KB]
     --------
     You can press [CTRL+K], release [CTRL] and the press [B].

CHG: labels of network drives are no longer displayed in the
     fileselector drive list.

CHG: the macro recorder preserves the last used key combination
     for a recorded macro.

CHG: better error message handling for file operations.

CHG: improved performance of block operations.

CHG: "Jump to section" now searches the active buffer first.

FIX: arranging the textwindows (cascade, tile) restores the state
     of the maximize button in the window titlebar.

FIX: the "modified" state of a buffer is restored, when Undo
     is called after a file has been saved.

FIX: bug in "on the fly" syntax type switching.

FIX: line spacing in Formatted Printing is now calculated correct.
     This bug caused underscores to be overwritten by the following
     line under special circumstances.

FIX: mouse blockmarking now works correct in the first columns when
     line numbering is enabled.

FIX: macro playback bug in "Auto block unmarking" mode.

FIX: EOL comments in syntax highlighting work now correct with
     comCol > 0.

FIX: minor bug in notebook "Settings" when scrolling through the
     pages in reverse order.


----------------------------------------------------------------------------
VERSION 1.17     12 Febuary 1997
----------------------------------------------------------------------------

NEW: Syntax Highlighting now supports color coding of integer numbers.
     The following optional keywords can be used in "med.syn" for
     configuration (decimal numbers are always recognized):

     Keywords:
     =========

     numPostfix: [string]

                 defines an optional integer postfix.

                 Example (C/C++):
                 ----------------

                 numPostfix: L


     color: ....
     decPrefix:  [string]

     color: ....
     hexPrefix:  [string]

     color: ....
     octPrefix:  [string]

     color: ....
     binPrefix:  [string]

                 This keywords define optional prefixes and
                 colors of decimal-/hexadecimal-/octal-
                 and binary-numbers.

                 NOTE:
                 -----
                 The first prefix character must not be included
                 in the symbol list!

NEW: Syntax Highlighting now supports two "end-of-line"
     comments.

     Example (FORTRAN):
     -------------------------------------------

     eolCom: !
     comCol: 0

     eolCom: C
     comCol: 1


NEW: Syntax Highlighing now supports FORTRAN. The Java support has been
     enhanced (section browser/display).

NEW: Submenu "Syntax type" to change the type of syntaxhighlighting for the
     active text window on the fly.
     (s. menu "File")

NEW: "Replace all" button in the replace function verfiy dialog. This
     button replaces all matching targets from the current cursor
     position.

NEW: Function "splitLine" splits a line without moving the cursor.
     The default key is [SHIFT+Return].

NEW: Function "Close all" (s. menu "File")

NEW: Option "Jumpy horizontal scrolling".
     (s. notebook "Settings", page "Edit")

CHG: [ALT+F4] exits MED. [CTRL+F4] closes the active text window.

CHG: faster text window redraw algorithm.

FIX: "Jump to section"

FIX: opening a file, that is blocked by an other application, does
     not crash MED anymore.

FIX: line numbering now works when scrolling via the scroll bar
     arrow buttons.

FIX: the file selector works now correctly, when there are "holes"
     in the drive lettering ("ABCD X", for instance).

FIX: book marks

FIX: the Tool Manager now handles relative tool working directories
     correctly.

----------------------------------------------------------------------------
VERSION 1.16   23 December 1996
----------------------------------------------------------------------------

NEW: DDE (Dynamic Data Exchange). The following "EPM" commands are
     supported:

     Commando |  Parameter
     ---------+----------------------------------------
     EDIT     |  filename1 [filename2]...[filenameN]
     GOTO     |  line [col]
     SAYERROR |  errorMsg

     MED's default DDE server name is "MRED". If a client does
     not support configuration of the server name, you can
     change MED's server name. To get full DDE compatibility
     to EPM, just set MED's sever name to "EPM".
     (see notebook "Settings", page "DDE")

NEW: the Window Monitor now provides an option
     "Insert new window after current window". If this option is
     enabled, the name of a new window will *not* be inserted at the
     end of the Window Monitor.

NEW: Syntax Highlighting for 80x86 assembler and Clipper
     (see syntax configuration file "med.syn")

NEW: the word wrap function can be configured in "med.syn".
     The following keyword can be used once per file section:

     wordWrap: current [col] | on [col] | off | disabled

     "current" leaves the word wrap mode (on/off) untouched, but
     sets optionally the word wrap column to column "col".

     "on" explicitly switches the word wrap function on and
     sets optionally the word wrap column to column "col".

     "off" explicitly switches the word wrap function off.
      However, it can be switched on when needed.

     "disabled" explicitly switches the word wrap function off
     and disables it, so it can't be switched on erratically.

     (see syntax configuration file "med.syn")

NEW: A mouse click in the character code display toggles the display
     mode (decimal/hex).

     A mouse click in the line/column display brings up the
     "Goto line" dialog.

NEW: besides the bookmarks, there are now five global anchors, that
     can be set on the fly via keyboard. The default keys are
     [ALT + 1..5] and [Ctrl + 1..5] for dropping respective searching
     an anchor.
     (see menu "Search", "Anchors")

CHG: better performance when multiple files are opened at startup
     (only when the "Startup Text Window Layout" is set to "Maximize",
      see notebook "Settings", page "Startup").

CHG: the diplay fields in the statusbar are now insensitive to mouse
     clicks when the main window is deactivated. Now you can't toggle
     the writing mode when you activate the main window via a click
     to the statusbar.

FIX: setting the cursor postition via command line now works again.

FIX: clipbaord contents in UNIX format are now handled correctly.

FIX: minor error in syntax highlighting (unbalanced brackets).

FIX: the popup menu now appears, when keyword is not found in external
     help.

FIX: the file selector works now correctly, when there are "holes"
     in the drive lettering ("ABCD X", for instance).

FIX: the Window Monitor is now closed automatically, when the
     "Keep resident" option is not enabled.

FIX: F1 now calls the online help in dialogs.

FIX: accentuated characters are now handled correctly.

----------------------------------------------------------------------------
VERSION 1.15    11 November 1996
----------------------------------------------------------------------------

NEW: a line numbering area can be switched on optionally. Font and colors
     can be changed via Drag&Drop. The width of the line numbering area can
     also be configured.
     (s. menu "Options", "Line numbering" and
      notebook "Settings", page "Window - Controls")

NEW: configurable Autosave function saves modified files after a specified
     number of changes or a specified amount of time. The backup file is
     saved in a special directory with the file name extended by "~sav"
     on HPFS respective "~" on FAT drives.
     (see notebook "Settings", page "Autosave")

NEW: graphic drawing function. The default drawing keys are
     [Ctrl+Alt+CurLeft|CurRight|CurUp|CurDown].
     There are 10 different line styles selectable in the "Draw"
     submenu (menu "Edit").
     Marked rectangles (column blocks) can be framed with the selected
     line style.

NEW: optionally the ASCII code of the current character is displayed along
     with the cursor's line/column position. The code can be displayed
     decimal or hexadecimal.
     (see notebook "Settings", page "Window controls")

NEW: the vertical/horizontal scrollbar can be removed from the
     text windows.
     (s. notebook "Settings", page "Window")

NEW: modified buffers are marked by a red "LED" in the Window Monitor
     and the window titlebar. View names are displayed indented in blue
     color in the Window Monitor.

NEW: the file selector provides a history of the last 20 paths, that
     have been used to load/save a file.

     The "Drives" menu has been moved to a dropdown list box, that
     also displays the volume label for each drive.

NEW: every tool can have an optional menu entry.
     (notebook "Tool configuration", page "Shortcut/Symbol")

NEW: after "Goto to section" ([CTRL+Return]) the function
     "Return to calling section" ([ALT+Return]) brings the cursor
     back to his previous position. The text window is closed
     automatically, in case it was opened by the "Goto section"
     call.
     (s. submenu "Section" in menu "Search")

NEW: when a file with backup extension (timestamp, counter) is to be
     saved, the "Save as..." dialog is opened automatically.

NEW: when the File History in menu "File" exceeds 10 entries, a submenu
     "More..." is created. The File History may now have up to 40
     entries.
     (s. notebook "Settings", page "Misc")

NEW: the Tool Manager can now handle the buggy path outputs of the
     GNU C++ compiler (double backslashes).

NEW: in dialog "Print (formatted)" the name of the current printer font
     is displayed.

NEW: while formatted printing, the number of the currently printed (or
     spooled) page is displayed in the text window titlebar.

NEW: formatted printing can be aborted by pressing the [ESC] key.

NEW: the initial window layout can be configured (cascade, maximize).
     (s. notebook "Settings", page "Startup")

CHG: the internal memory management now produces less overhead. This leads
     to a significant smaller memory consumption when a large number of
     files are loaded.

CHG: the max. line length has been increased from 1000 to 4094 characters.

CHG: keyboard shortcuts may now contain combinations of two of the modifier
     keys [SHIFT], [CNTRL] and [ALT].

CHG: relative path components are removed from the path when a file is
     opened.

CHG: when the main window is minimized, the tool output window is
     now minimized too.

CHG: the Window Monitor does no longer run in a separate thread (with
     its own PM message queue), since this could cause trouble when
     running NPSWPS.

FIX: files that are passed in a file list ("-f" commandline parameter)
     are now loaded in the correct order.

FIX: MED crashed on *very* long C-function names in the Section
     Display/Browser.

FIX: the main window now stays maximized, when using the Window Monitor
     to switch to another text window.

FIX: the OS/2 provided "Maximize window" functionality has been modified.
     A maximized text window now perfectly fits the main window client
     area.

FIX: when using the vertical scrollbar, the end of the text is now reached
     in mode "Scrollbars move cursor".


----------------------------------------------------------------------------
VERSION 1.14      1 October 1996
----------------------------------------------------------------------------

NEW: hypertext section searching. Set the cursor to a sections
     reference (for example a  call to a C-function)
     and then call "Find section" or press [CNTRL + Return]. This
     will search the function declaration in the buffers first, and then
     in the files of the working directory. A feature to define specific
     directories to search will be implemented in the next version
     of MED (project management). Also a "ctags" compatible index file
     is planned.

NEW: auto file load on startup. The names of the current used files
     are saved in the file "med.lru" when MED shuts down and
     reloaded automatically when MED is started again. "med.lru"
     can be saved in the current working directory (local) or
     in the MED configuration directory (global).

     Auto load can be skipped by pressing the [CNTRL]-key during
     startup.

     (see notebook "Settings", page "Startup")

NEW: the Window Monitor can optionally be attached to the main window
     (left, right, top or bottom). Height/width and position of the
     Window Monitor are adjusted when the main window is moved or
     resized.
     (see notebook "Settings", page "Window Monitor")

     The right mouse button brings up a Window Monitor context menu.

NEW: backup file names can now have a numeric extension.
     (see notebook "Settings", page "Load/Save")

NEW: wildcards ("*", "?", "[]") can be used when file names are passed
     to MED on the commandline or in the file selector.

NEW: option of scrolling the text via the sliders while the cursor
     remains in the same location in the window.
     (see notebook "Settings", page "Cursor")

NEW: matching strings are underlined green by the "Find..." function.

NEW: reloading "med.syn" without leaving MED
     ("Options->Reload syntax configuration")

NEW: "Undo" sets the state of a buffer to "not modified" when all
     modifications are reverted. Note that the undo queue has
     a limited size, so you not always will get back to the inital
     state of a buffer.

NEW: commands to delete blanks left/right the current cursor postion
     up the next character.
     ("Edit->Line->Delete blanks left" and
      "Edit->Line->Delete blanks right")

NEW: a click with the left mouse button while pressing [SHIFT]
     relocates the end of a block.

NEW: "Select all" command in the "Block" menu.

NEW: optionally a marked block is replaced when a character is entered
     or the clippboard is inserted. This feature is availible only
     in the "Auto block unmarking" mode.
     (see notebook "Settings", page "Edit")

NEW: the status of the "Save" option in the dialog "Set bookmark" is
     now part the MED configuration. With this option activated
     the bookmark list would grow permanently. To prevent this,
     the maximum count of bookmarks to be saved can be defined.

NEW: "Ping-Pong" bookmark functions, that do not call the bookmark
     dialogs.

     Example:
     --------
     Set the cursor to line 20 and call "Save cursor position". Then
     scroll to line 100 and call "Restore cursor position". The cursor
     jumps to line 20. Now call "Restore cursor position" again and
     the cursor jumps back to line 100. The next call will jump
     to line 20 and so on....

     (s. menu "Edit", "Save/Restore cursor position")

NEW: a list of characters can be defined, which will cause the word
     wrap function to begin a new paragraph, in case one of this
     characters appears in the first column of a line.
     (see notebook "Settings",
     page "Edit->Word wrap->Paragraph separators")

NEW: the default mouse pointer in text windows now is the "I-beam".
     The mouse pointer type can be changed to "arrow".
     (see notebook "Settings", page "Mouse->Mouse pointer")

NEW: further enhancements of syntax highlighting. Reserved words now may
     contain a symbol at the start and end.

NEW: HTML and Modula-2 syntax highlighting.

NEW: sounds can be turned off
     (see notebook "Settings", page "Misc")

NEW: File Selector fonts (menubar, file name entryfield, file-/directory list)
     can be configured via drag'n'drop.

     Section Browser font (section list) can be configured via drag'n'drop.

     "Exit MED" dialog font (file list) can be configured via drag'n'drop.

NEW: new notebook style under OS/2 4.0 (Merlin)

CHG: compiler error/warning messages are no longer displayed in the
     status bar. They are now displayed in a small window beneath
     the faulty line.

CHG: when the main window is minimized, the tool output window is
     hidden.

CHG: cursor position is no longer changed when a window is activated
     by a mouse click in the text area.

CHG: F1 and F10 can now be redefined for macro calls.

CHG: when a word is selected, the cursor is set automatically to the
     begin of the word.

CHG: file selector: [SHIFT + Tab] displays the previous matching
     file name.

FIX: the first instance detection now works properly when multiple
     files are dropped on the MED icon.

FIX: bug in NDX support.

FIX: "Recording macro..." message

FIX: block marking with the mouse no longer gets stuck when the mouse button
     is released over the window border.


----------------------------------------------------------------------------
VERSION 1.12   8 July 1996
----------------------------------------------------------------------------

NEW: registering via BMT Micro

NEW: new program icon (32x32 and 40x40).

NEW: an EPM keyboard configuration file "epm.kbd" is supplied. Rename this
     file to "med.kbd" to use it as the default keyboard configuration.

NEW: up to 99 backups per file. In multiple mode, current date and time
     are added to a file name when a backup is created. Thus this
     feature is availible only for filesystems, that support long
     filenames (HPFS, EXT2FS). Multiple backup mode is ignored on
     FAT drives.
     (Notebook "Settings", page "Load/Save")

NEW: Search and Replace now support regular expressions.

     Example:
     ---------
     Search string:    oldfoo\(([^ ,]*), ([^\)]*)\)
     Replace string:   newfoo(\2, \1, FALSE)

     This will find occurences of the subroutine "oldfoo", reverse the first
     and second parameters, add a third parameter of FALSE, and change
     the name to "newfoo".

NEW: Section-Browser and Section-Display:

     Section-Browser
     ===============
     is a dialog, which displays all sections of a file. A section may be
     a subroutine of a programming language, a paragraph of a TeX dokument,
     entries of config.sys etc..
     Sections are located using a regular expression which can be adapted
     for any type of file. MED provides an internal parser for
     C/C++ files, so the regular expression is not necessary for this
     type of file. If the regular expression is defined for C/C++, the
     internal parser is disabled.

     The regular expression is defined in "med.syn".

     Example:
     --------

     sectionRegexp:         :[Hh][0-9]

         This defines the regular expression to locate paragraphs of
         IPF/IPP documents.


     The following entries in "med.syn" are used for further
     configuration of the Section-Browser:

     sectionDisplayRegexp:  (:[Hh][0-9][ ]*)(res=[0-9]*\.)[ ]*(.*)

         This regular expression is used to subdivide a section head
         into several data fields, which can be displayed in any
         order in the Section-Browser (or the Section-Display).

     sectionBrowserOrder: 1, 2

         This defines the order, in which the data fields are displayed
         in the Section Browser.

     sectionBrowserMainKey: 2

         This defines the data field by which the section headers are
         sorted.


     Section-Display
     ===============

     Optionally, the name of the section in which the cursor currently
     resides, can be displayed in the status bar.


     The following entries in "med.syn" configure the Section-Display:

     sectionDisplayRegexp:  (:[Hh][0-9][ ]*)(res=[0-9]*\.)[ ]*(.*)

         This regular expression is used to subdivide a section head
         into several data fields, which can be displayed in any
         order in the Section Display (or the Section Browser).

     sectionDisplayOrder: 2

         This defines the order, in which the data fields are displayed
         in the Section Display.


     sectionDisplay: 5000, 1000

         The first parameter defines how many lines a file may contain
         before the Section Display is disabled in order to avoid
         a loss of editing performance. A value of 0 disables
         the Section Display.

         The second parameter defines how many lines may be searched
         for a section header starting at the current cursor position.

NEW: The keys [ALT + PageUp] and [ALT+ PageDown] can be used to jump to
     the previos/next section of a file (the Section Display must be
     enabled).

NEW: the internal C/C++ parser is much faster now.

NEW: LaTEX syntax highlighting.

NEW: in addition to colors, the font attributes "bold", "underline" and
     "boldUnderline" can be used for syntax highlighting on the
     video display.

NEW: Syntax highlighting support for formatted prining (monochrome or color).
     The monochrome mode uses font attributes (normal, bold, italic, outline,
     underline and any combination of these).

     Colors for display and printer output can be configured separately in
     "med.syn". The "color" keyword has been modified:

     color:  dispColor, dispFontAttribute, printColor, printFontAttribute

     Example:
     --------

     color:  blue, boldUnderline, darkblue, bold

     For video display output, any (defined) color can be used in combination
     with the font attributes "bold", "underline" and "boldUnderline".

     For printer output, any (defined) color can be used in combination
     with the font attributes "bold", "underline", "italic", "outline".
     The font attributes can be added by concatenating the identifiers
     (case is ignored).

NEW: the print header is now more configurable.

NEW: unformatted raw ASCII printing to a specified port (LPT1-LPT4).

NEW: EPM index files (*.NDX) are now supported. No additional
     configuration required.

NEW: configurable toolbar Bubble-Help.
     (see notebook "Settings", page "Toolbar->Size/Position/Help")

NEW: the file selector now allows to change the line format of a file
     (OS/2, UNIX) before it is saved.

NEW: the file selectors current load path is saved in the configuration.

NEW: the file selector provides a "Home" button to quickly jump to the
     startup working directory.

NEW: automatic/manual sorting of userdefined file selector paths/filters.
     (see notebook "Settings", page "File selector->Filter/Paths").

NEW: the MED file selector can be replaced with the standard system
     file selector.
     (see notebook "Settings", page "File selector->Filter").

NEW: optionally the cursor position is saved when a file is closed.
     (see notebook "Settings", page "Cursor").

CHG: the load and save functions are now processed in threads

CHG: the default system keys (F1, F10, Alt+Fx) are now availible for
     editor functions.

FIX: no system lockup when a scheme from the scheme palette is applied.

FIX: the "maximied" state of the application window is now restored
     correctly.

FIX: Memory leak in file selector fixed.


----------------------------------------------------------------------------
VERSION 1.11   12 May 1996
----------------------------------------------------------------------------

NEW: Option "Hide output window" to start a tool without displaying
     the output window.
     Option "Close output window" to close the tool output window
     automatically after a tool has completed work with no errors/warnings.
     (notebook "Tool configuration", page "Actions", page "Options")

NEW: [SHIFT + PageUp] und [SHIFT + PageDown] marks a standard stream block.

NEW: the function name used in "med.kbd" is displayed in the dialog
     "Shortcut/Menu entry configuration".

NEW: empty lines can be found if nothing is entered in the "Find..."
     dialogs target entry field.

NEW: printer configuration is saved separately for each printer
     (max. 20 printers).

     The default printer is saved.

     The name of the active printer is displayed in the title of the
     "Print" dialog.

NEW: Option "Transfer marked word to find dialog"
     (notebook "Settings", page "Edit").

NEW: a picture of MED's author has been integrated in the online docu.

CHG: a click on a tool symbol with the left mouse button while the
     [CNTRL] key is pressed brings up the notebook
     "Change Toolsettings".

CHG: the keyboard interface has been rewritten.

CHG: the functions "Mark block start/end" are availible again in the
     "Auto block unmarking" mode.

CHG: the default keyboard configuration is only installed if no "med.kbd"
     file is found.

CHG: the compiler symbols has been removed from the default toolbar because
     the association with existing tool configurations did not work.
     Please install your compiler symbols from scratch.

CHG: if no tool working directory is defined, the path of the active text
     buffer is used.

FIX: when moving a block to another text buffer, the window of the source
     buffer is now redrawn correctly.

FIX: MED crashed on the attempt to assign a keyboard shortcut to a
     tool that was installed in V1.04.

FIX: sometimes a tool could only be started once via a shortcut or toolbar
     symbol.

FIX: file of length 0 are no longer rejected.

FIX: the fileselectors folder list now shows the ".." entry in
     empty directories.

FIX: the application window size and position is no longer saved in case
     MED is closed in iconized state.

FIX: dialog boxes are now fully visible no matter what position the
     applicaton window has.

----------------------------------------------------------------------------
VERSION 1.10    01 May 1996
----------------------------------------------------------------------------

NEW: registered users will receive a user id to personalize their
     copy of MED (see menu "Help", "Product information").

NEW: all block highlighting functions have been totally rewritten.
     The standard stream block (line block) and the column block
     are now availible.

     The standard block can be marked using the CUA key combinations
     [SHIFT + arrowKey] and [SHIFT + CTRL + arrowKey].

     Note:
     **********************************************************************
     * A column block can be marked using [SHIFT + ALT + arrowKey]        *
     * and [SHIFT + CTRL + ALT + arrowKey] key combinations.              *
     * The block mode is adjusted automatically.                          *
     **********************************************************************

     The "Set block start/end" functions are still availible but you
     must set the block mode (line/column mode) as desired.

NEW: the keyboard configuration has been moved from the binary "med.cfg"
     file to the ASCII file "med.kbd". You can customize the keyboard
     configuration directly by editing this file or "on the fly"
     by calling the "Shortcut/Menu entry configuration" dialog.

     You can assign multiple shortcuts to same editor function.

     You can assign *any* key combination to the menu titles
     ("File", "Edit" etc.) by editing the following entries of
     "med.kbd":

     key:    Alt+D      menuFile
     key:    Alt+E      menuEdit
     key:    Alt+B      menuBlock
     key:    Alt+S      menuSearch
     key:    Alt+M      menuMacro
     key:    Alt+T      menuTools
     key:    Alt+F      menuWindow
     key:    Alt+O      menuOptions
     key:    Alt+H      menuHelp

NEW: the commandline option "-k" can be used to pass a different keyboard
     configuration file to MED (default: med.kbd)

NEW: multiple views of the same text buffer can be opened to make
     different parts of a text visible simultaneously.

     The submenu "Views" provides functions to manipulate all views
     of the same text.
     All other functions of the "Window" menu manipulate the topmost
     views of all text buffers.

NEW: the toolbar has been redesigned. You can configure the toolbar
     height/position and the size of the toolbar buttons
     (see notebook "Settings", page "Toolbar").

     You can move the symbols with the right mouse button.

     Besides the predefined symbols, you can assign your own bitmap
     creations (called userdefined symbols) to any editor function.
     Just press the [CNTRL] key and hold it down while you click on
     a menu function...

     Note: userdefined symbols are external bitmap files of size 24x24
           in OS/2 bitmap format 2.0. They must be placed in the
           directory "med-bmp" which is located in the same
           directory as the MED configuration files.


NEW: you can assign a keyboard shortcut and a symbol to every tool so
     you do not have to open the tool manager to launch a tool.

NEW: the toolbar configuration is saved in the ASCII file "med.tlb".

NEW: the commandline option "-t" can be used to pass a different toolbar
     configuration file to MED.

NEW: the statusbar has been redesigned. You can customize the font via
     drag'n'drop.

NEW: you can configure the mouse button functionalty
     (see notebook "Settings", page "Mouse").

NEW: block functions "Goto block start/end" and "Convert to upper/lower case".

NEW: the tab width can be configured per file type using the "tabWidth"
     keyword in "med.syn".

     Example:
     ---------

     files: *.c;*.h
     tabWidth: 4

NEW: the OS/2 file type can defined using the keyword "eaFileType" in
     "med.syn". The file type is saved in the extended attributes.

     Example:
     ---------

     files: *.c;*.h
     eaFileType: "C Code"

NEW: Java support (predefined tool, Java section in "med.syn")

NEW: the mouse pointer gets hidden automatically when a character
     is entered.

NEW: Fileselector:

     The pages "User path/filter" and "Load/Save Actions"
     of the "Settings" notebook can be called from the fileselector menubar.

     File and path completion functionality with [Tab] key for any directory.

NEW: option "Add Ctrl-Z at end of file" when a file is saved
     (see notebook "Settings", page "Load/Save").

NEW: [CTRL + TAB] switches to the topmost view of the next buffer.

CHG: an attempt to load an already opened file via the file selector
     brings up a warning dialog.
     If the name of an already opened file is passed to a running instance
     of MED, the appropriate text buffer is activated.

CHG: an iconized MED application window can be reopened via switching to a
     textbuffer in the window monitor.

CHG: when a bookmark is set, the first 40 characters of the line are picked
     up for the bookmark description.

FIX: the tool working directory is set correctly when it is on a another
     drive than the tool.

FIX: C++ destructors are displayed correctly in the C-function list.

FIX: the horizontal scrollbars now work correctly in the C-function list and
     the tool output window.

FIX: some minor syntax highlighting quirks have been removed.

FIX: block highlighting with the mouse works now correctly with the
     option "Auto block unmarking" enabled.

FIX: [CNTRL + END] now places the cursor behind the last character of
     the last line.


----------------------------------------------------------------------------
VERSION 1.04  02 January 1996
----------------------------------------------------------------------------

NEW: configurable compiler support

NEW: import file via drag & drop with [CNTRL]-key pressed

NEW: fileselector allows a path to be entered manually

NEW: function "Save all" in menu "File"

NEW: enhanced C-Functions dialog (incremental search, colors)

NEW: optional "include" directive in syntax-highlighting configuration file

NEW: page scroll factor (notebook "Settings", page "Edit")

NEW: lineend format conversion (UNIX <-> OS/2).
     (notebook "Settings", page "Open/Close")

CHG: new configuration file format (you will not lose your configuration in future
     versions of MED)

CHG: find/replace options are saved in the configuration

CHG: main window is automatically restored (if it is minimized) when a
     file is opened

CHG: MED no longer exits in case the last edit window is closed

CHG: option "[Del] deletes block" was replaced by "Auto block unmarking".
     If this option is enabled, a cursor move or character input automatically
     unmarks a block in the active text window. In this mode, a block can
     be deleted using the [Del] key.
     This is only a small step towards CUA-compatibility, which will be provided
     in version 1.05.

CHG: improved internal memory manager

FIX: works now under OS/2 2.x

FIX: fileselector now sorts files (required for non-HPFS/CDFS-drives)

FIX: fileselector now emulates ".." directory (required for Netware 4.1)

FIX: undo/redo on "Import file"

FIX: '.' on numeric keypad

FIX: filenames with spaces are ow handled correctly

----------------------------------------------------------------------------
VERSION 1.03   28 October 1995
----------------------------------------------------------------------------
NEW: configurable syntax highlightning (colors can be defined via RGB-values)

NEW: filename completiton in the fileselector ([down-arrow] = next matching
     filename, [up-arrow] = previous matching filename)

NEW: configurable support for third-party external Online-Help (for instance
     "rexx.inf" for REXX-files, "cmdref.inf" for config.sys).

NEW: enhanced toolbar configuration

NEW: cursor-shape configuration

NEW: undo/redo on "replace string" operation

NEW: undo/redo on "paste clipboard" operation

CHG: block marking from the right to the left

CHG: menu entry shortcuts now deleteable

CHG: goto next/previous word

CHG: the environment variable MISTER_ED_PATH is now redundant.
     Config-files are searched in the directory ".\med" starting from
     the directory, where "med.exe" resides. If this directory not exists
     the MED startup directory is used.

FIX: toolbar bug

FIX: font problems

FIX: default font for 640x480 screen resolution

FIX: numeric keypad

FIX: undo/redo block marking

----------------------------------------------------------------------------
VERSION 1.02     14 September 1995
----------------------------------------------------------------------------
NEW: "Window Monitor" dialog displays the names of all opened files.
     You can keep this dialog open during an editing session, so you
     will always have a quick overview of opened files. The list is updated
     in case a new file is loaded or a file has been closed.
     You can also use the dialog to switch to a file.
     Savable configuration options: keep resident
                                    size
                                    position
                                    font
                                    filename display mode (with/without path)


NEW: a dialog is displayed when you have requested to exit MED
     but there are files with unsaved changes. This dialog allows you to
     choose the files you wish to save before the editor exits. You can save
     all the displayed files, select those you wish to save, or save none.

NEW: print text/block function. An optional header can be printed on each page
     containing the file name, date, time and pagenumber.

NEW: wordwrap function. Wordwrapping is performed dynamically during you
     type in new text. Also a text or a selected block may be reformatted
     on demand.

NEW: line centering function

NEW: backtab function (SHIFT+Tab)

NEW: a popup menu (right mouse button)

NEW: configuration option "Use one program instance". If this option
     is enabled, only the first instance of MED is loaded into memory.
     As long as this instance runs, the parameters of following calls to
     MED will be passed to that first instance. In other words, you can
     start MED via commandline/icon several times and pass the names
     of files to be opened, but all files are loaded into new text windows
     in the same MED main window.
     This helps to save memory and desktop space.

NEW: configuration option "Open file in active text window". If this option
     is enabled, a new file is loaded (via Open...) into the active text
     window. Else a new text window is created before a file is opened.

NEW: a block is automatically unmarked before a new block is marked

NEW: Import function (menu "File") inserts a file at the current
     cursor position

NEW: Fileselector: new function "Add current path"

NEW: smarticons "Undo" and "Redo"added

NEW: the background color of the main window can be changed via Drag & Drop

FIX: changing the shortcut of a disabled menu option works now if you
     press [CNTRL] before you pull down the menu.

FIX: CTRL+Y now works

FIX: vertical scrollbar works now correct in files with more than 32768 lines

----------------------------------------------------------------------------
VERSION 1.01     31 August 1995
----------------------------------------------------------------------------
----------------------------------------------------------------------------
VERSION 1.0      02 August 1995
----------------------------------------------------------------------------

