File mp-5.62-releasenotes.patch of Package mp

release notes for versions prior to 5.31, cf. github.com/rofl0r/mp-5.x

--- a/RELEASE_NOTES	2024-12-07 08:52:00.000000000 +0100
+++ b/RELEASE_NOTES	2025-05-27 16:07:11.957738688 +0200
@@ -562,3 +562,742 @@
 The ANSI driver now accepts alt-letter keycodes.
 
 The execute MPSL code function always dumps its output to the dump window.
+
+5.3.0
+-----
+
+ - Architectural changes:
+   - Major refactoring; old code pruned and cleaned, memory
+     management improved.
+   - MPSL code is no longer deployed as separate files, but
+     embedded in a tar file or inside the program binary itself.
+   - Some MPSL code is loaded on demand.
+   - New "portable" (i.e. no installation needed) versions for
+     MS Windows.
+ - New features:
+   - New action `insert_m_dash', bound by default to `alt-minus'.
+   - New action `replace_tabs_with_spaces'.
+   - New action `replace_spaces_with_tabs'.
+   - New action `open_recent', to pick the file to open from
+     the previosly opened ones.
+ - Other changes:
+   - Versioning have changed from x.x.x to x.yyy.
+   - The coloring theme for GUI drivers has changed to something
+     with dark background and softer colors. If you want to revert
+     the classic, bright colors on white background theme, copy
+     and paste the following into the configuration file:
+
+    /* Minimum Profit Classic */
+    mp.colors.normal.gui        = [ 0x000000, 0xffffff ];
+    mp.colors.cursor.gui        = mp.colors.normal.gui;
+    mp.colors.selection.gui     = [ 0xff0000, 0xffffff ];
+    mp.colors.comments.gui      = [ 0x00cc77, 0xffffff ];
+    mp.colors.documentation.gui = [ 0x8888ff, 0xffffff ];
+    mp.colors.quotes.gui        = [ 0x0000ff, 0xffffff ];
+    mp.colors.matching.gui      = [ 0x000000, 0xffff00 ];
+    mp.colors.word1.gui         = [ 0x00aa00, 0xffffff ];
+    mp.colors.word2.gui         = [ 0xff6666, 0xffffff ];
+    mp.colors.word3.gui         = [ 0x000088, 0xffffff ];
+    mp.colors.tag.gui           = [ 0x8888ff, 0xffffff ];
+    mp.colors.spell.gui         = [ 0xff8888, 0xffffff ];
+    mp.colors.search.gui        = [ 0x000000, 0x00cc77 ];
+
+5.2.15
+------
+
+ - Fixes:
+   - A severe bug in the GTK driver. Sometimes comboboxes
+     in forms do not correctly show the default value. This
+     can be specially troublesome in the "Line options"
+     form because the end-of-line separator can be
+     accidentally set to an empty string and destroy
+     newly created files.
+
+5.2.14
+------
+
+ - Fixes:
+   - In Qt5, as there is no equivalent of Qt4's
+     QApplication() creator with an X11 Display object as
+     argument, there is no other way of detecting a
+     non-functioning X11 environment than checking the
+     existence of the DISPLAY environment variable, so that
+     is what is used to fall back to text mode.
+   - Cancellation of the opening of hexadecimal dumps
+     works again.
+   - The "git checkout" option in the VCS has been removed,
+     as I keep constantly hitting it by error.
+   - The `scroll_up' and `scroll_down' actions has been
+     swapped, so they make much more sense.
+   - After a word-wrapping is done, the horizontal visual
+     column is set to 0, as it's expected to do.
+   - Makefile output is left at the end of the file (where
+     fail / success information is most probably found instead
+     of the beginning of the file).
+   - GTK driver uses GDK_SELECTION_CLIPBOARD instead of
+     GDK_SELECTION_PRIMARY for copy / paste.
+   - GTK form lists are correctly scrolled to show the
+     selected item.
+   - Text in GTK is correctly copied to the clipboard as
+     utf-8 encoded.
+- New features:
+   - A new `export_as_rtf' action, to write current text
+     as a very basic RTF file. Words surrounded by asterisks
+     are written as strong text and surrounded by underscores
+     as emphasized text. Also, form feeds (ascii 0C) are
+     converted to page breaks.
+   - A new `insert_page_break' action, to insert an ASCII
+     page break character (FF, 0x0C).
+
+5.2.13
+------
+
+ - New features:
+   - This release includes Qt5 support.
+
+5.2.12
+------
+
+ - New features:
+   - This version includes a new driver for raw ANSI terminals,
+     for systems who don't (want to) have libncursesw.
+   - The cursor position for every file is remembered from
+     session to session.
+ - Fixed bugs:
+   - Fixed action `open_under_cursor' (again).
+   - Fixed behaviour inconsistency between actions `seek' and
+     `seek-next'.
+   - Fixed action `sync' (save all modified files).
+ - Other features:
+   - Version numbering convention has changed: development
+     versions shall no longer have (CURRENTVERSION+1)-dev,
+     but (CURRENTVERSION)-patch.
+
+5.2.11
+------
+
+ - This version includes the following lot of features by
+   fellow developer X-Ryl669:
+    - New cut line action (copy and delete line), bound by
+      default to ctrl-k.
+    - New key assignation to document list (ctrl-e).
+    - Fix ncurses detection for recent distributions.
+    - Added suspension (bound to ctrl-l) for curses driver.
+    - Added word selection with mouse double-click.
+    - Paste in ncurses prompt.
+    - New seek matching brace feature, bound to ctrl-j.
+    - Text search wraps to the top of the document as many
+      other text editors do.
+    - Several miscellaneous fixes.
+ - Other features:
+    - Window position and size is saved in all GUI interfaces.
+
+5.2.10
+------
+
+ - New features:
+   - New configuration directive mp.config.show_line_numbers,
+     to show line numbers to the left of each line.
+
+5.2.9
+-----
+
+ - New features:
+   - New configuration directive mp.config.emacs_scrolling, to
+     enable/disable emacs-like scrolling (half screen jumps
+     instead of line-by-line).
+   - New actions `scroll_up' and `scroll_down', bound by
+     default to `alt-cursor-up' and `alt-cursor-down'.
+   - New syntax highlight for JSON files.
+
+5.2.8
+-----
+
+ - New features:
+   - Mouse support on text interfaces (it can be disabled by
+     setting mp.config.no_text_mouse to 1).
+   - Support for the MS Windows console. Two win32 binaries are
+     now deployed: the classic, windowed mp-5.exe and the new,
+     console-based, mp-5c.exe.
+   - Added column to action `grep'.
+
+5.2.7
+-----
+
+ - New features:
+   - File format dependent build targets (to be used if a Makefile
+     is not found in the current directory).
+   - `open_under_cursor' also works over diff file marks (those
+     starting with @@).
+   - New configuration directive `make_opts', for command line
+     options to be added to `make'.
+   - Search and replace accepts Unicode chars in \x{HHHH} format.
+   - The status line format string can also include the %u token
+     to show the Unicode codepoint of the character under the cursor.
+ - Fixed bugs:
+   - Fixed hexdump search.
+   - Avoid having zero-size marks.
+
+5.2.6
+-----
+
+ - Fixed grep.
+
+5.2.5
+-----
+
+ - New features:
+   - Hex view is searchable.
+   - New syntax highlight for JavaScript.
+ - Fixed bugs:
+   - Avoid crashes in `play_macro' action.
+   - Fixed failing menus on Qt4.
+   - Fixed file renaming errors in the directory editor.
+ - Important changes:
+   - Default tab settings has been changed to convert to 4 spaces.
+
+5.2.4
+-----
+
+ - New features:
+   - A new directory editor, linked to the new `open_folder'
+     action, that allows file deletion and renaming.
+   - New configuration directive `font_weight'.
+   - New action `insert_time_stamp', that inserts the current
+     timestamp according to the format in the
+     `mp.config.time_stamp_format' configuration directive.
+ - Changes:
+   - mp.add_keyseq() has been reimplemented and no longer needs
+     the initial [, as it already assumes it's used only for ANSI
+     sequences (so you may need to tweak your own definitions).
+ - Fixes:
+   - Dynamic tab tweking.
+   - Avoid hangups when trying to highlight 0 size regexes.
+   - Minor VCS fixes.
+   - Revert can be undone.
+
+5.2.3
+-----
+
+ - New improvements:
+   - New actions `move_section_up' and `move_section_down'
+     (bound by default to `alt-cursor-up' and `alt-cursor-down').
+   - VCS commands can have a common or private log.
+   - The menu has been reorganized.
+   - Keycode targets can also be other keycodes (not only editor
+     actions), so they can be used as aliases.
+   - Encodings are now selected from a list.
+   - The Curses interface now includes a read-only scrollbar.
+   - A much faster hexadecimal viewer.
+ - Other changes:
+   - Al MP code has been refactored to use new MPSL object-oriented
+     capabilities.
+
+5.2.2
+-----
+
+ - Major improvements:
+   - Added Version Control commands (bound by default to `ctrl-p').
+     The supported systems are (adding new ones is very easy):
+     - Git
+     - Subversion
+     - Mercurial
+   - If any file being edited is modified externally, the situation
+     is detected and the user is prompted for file reloading.
+   - GTK library detection: Uses 3.x if available, then 2.x.
+   - Special information gathering on help: if the file being edited
+     is C/C++ and asking for help (by pressing `F1') do not return
+     a `man' page, a special routine inspects all source files and
+     headers looking for structures, variables and function prototypes
+     to be shown as help.
+   - If a template name starts with #!, the template body is assumed
+     to be MPSL code, that will be executed and its value returned
+     as the template to be inserted.
+   - New "Pipes" game.
+   - New `check_for_updates' action.
+ - Fixed bugs:
+   - Make `keep_eol' behaviour more intuitive (bug #1294).
+
+5.2.1
+-----
+
+ - New actions:
+   - `indent_block': Indents the current line or the selected block.
+   - `unindent_block': Reverse of `indent_block'.
+ - New features:
+   - ~/.mp_templates can be a directory. If it is, the `global' file
+   there is always read (and those templates put at the top) and it
+   will also read a file named like the current syntax highlight
+   definition (so different templates appear if your editing C, Perl,
+   etc.).
+ - New configuration options:
+   - `mp.config.smart_bol': if set to nonzero, the `move_bol' action
+     now moves to the first non-blank character in the line instead of
+     to column 0 (unless the cursor is already on the first non-blank).
+ - Other improvements:
+   - The following actions accept additional arguments when called
+     as functions (and do not ask for them, if present):
+     - `goto'
+     - `save_as'
+     - `exec_command'
+     - `filter_selection'
+
+5.2.0
+-----
+
+ - New actions:
+   - `filter_selection': to filter the selection (or the
+     full document if no selection is done) through a system command.
+   - `exec_action': that shows a list of actions to execute
+     on the current document.
+   - `cut_lines_with_string': that cuts to the clipboard all lines
+     in a document or block that matches a regular expression.
+   - `insert_real_tab': bound to `shift-tab', to insert a tab
+     character (\t) regardless of whatever is set in the
+     `tabs_as_spaces' configuration variable.
+   - `insert_next_item': to insert a new enumeration item in
+     a document.
+ - Bugfixes:
+   - Fixed insert / overwrite mode.
+   - If a selection is invisible (incomplete or with the start and end
+     in the same character), a new keystroke does not jump to it.
+ - New configuration options:
+   - `mp.config.hw_cursor': to activate the hardware cursor in
+     text environments (disabled by default).
+ - Text user interface improvements:
+   - File opening list is fully navegable (directories up and down),
+   - Selection lists accept letter keys to jump to elements,
+   - If a text mode menu panel do not fit vertically on the screen,
+     menu items are scrolled as needed.
+ - New command line options:
+   - `-txt': force text mode (instead of GUI).
+ - General improvements:
+   - If a block is selected, actions `word_wrap_paragraph',
+     `join_paragraph' and `eval_doc' act only on it.
+   - The internal engine has been partly rewritten, so it requires
+     less memory and it's a bit faster.
+
+5.1.4
+-----
+
+ * If a block is selected, any keystroke substitutes it.
+ * Support for Alt + keys (ASCII and movement) has been added,
+   and mostly left unbound to be used by the user for his own
+   keybindings.
+ * A new tab mode, which uses the previous line as a template
+   for tab columns.
+ * Fixed action `open_under_cursor'.
+ * The `mp.paste()' function returns the clipboard content
+   as a string if called without arguments.
+ * New Grutatxt syntax highlighter.
+ * Fix F10 in Win32.
+ * Fix a bug when calculating the drawing position in the
+   selected block, that were leading to crashes.
+
+5.1.3
+-----
+
+ * A new Qt4 driver (adapted from the KDE4 driver).
+ * A new hexadecimal viewer.
+ * New action `open_dropped_files', to open files dropped from
+   the underlying system GUI.
+ * Improved file encoding autodetection by looking at the
+   UTF BOM marks.
+ * New configuration option `keep_eol', to keep the original
+   end of line sequence each document had.
+ * Fixed some clipboard issues, as replacing the selected block
+   when pasting and some crashes.
+ * win32 executable has been renamed to `mp-5.exe'.
+ * The status line format string can also include the %e token
+   to show the encoding used by the document.
+ * Fixed win32 input processing in non-latin environments.
+ * Setting an empty encoding (to fall back to system defaults)
+   always work.
+
+5.1.2
+-----
+
+ * The `grep' action can now be recursive.
+ * New syntax color for special documentation blocks.
+ * Fix searching into empty selected blocks (this was bug #1269).
+ * New action `section_list', that shows a list of _sections_
+   in the current document to jump to. Sections are usually
+   function definitions and special marks in programming
+   languages.
+ * New action `seek_misspelled', to search the next
+   misspelled word. It has been assigned to keycode `f5'.
+ * New action `ignore_last_misspell', to add the last misspelled
+   word found by `seek_misspelled' to a whitelist so it won't
+   be found again.
+ * New action `seek_repeated_word', to search for words starting
+   or ending with the same number of letters up to a maximum
+   distance. It's controlled by the new configuration directives
+   `mp.config.rw_num_chars' and `mp.config.rw_max_dist'.
+   It has been assigned to keycode `f6' (this keycode was
+   previously assigned to `join_paragraph', which has no
+   keybinding now).
+ * The action `open_templates_file' has been fixed.
+ * Several GTK interface updates by fellow developer Sebastian Vöcking.
+ * New command line option `-d', to change the working directory.
+ * Several fixes to the win32 driver; word wrapping, combobox
+   drop-down sizes, underlined text.
+ * Avoid hanging if the external ispell program is broken.
+ * The `dump()' function now dumps its argument as MPSL code.
+
+5.1.1
+-----
+
+ * Internationalization works in all platforms (including KDE4,
+   were it was faulty, and win32, where it was non-existent since
+   the 3.x series).
+ * The status line format string can also include the %w token
+   to show the number of words in the current document or selection
+   (can be slow).
+ * Search and replace is now limited to the selected block, if any.
+
+5.1.0
+-----
+
+Fixes to the KDE4 driver:
+
+ * Underlined text works.
+ * Text fields in forms now have history.
+ * If no xserver can be contacted, fall back to the curses interface.
+
+5.1.0-rc1
+---------
+
+ * KDE4 support.
+ * Rectangular block copy/paste support.
+ * New syntax highlight for the Euphoria language.
+
+5.0.3
+-----
+
+ * New action `open_under_cursor', that picks the word in the
+   current document under the cursor, accepts it as a document
+   name and tries to open it. If it's in the format string:number,
+   is accepted as a file name and a line number. It's bound by
+   default to `ctrl-enter' (`alt-enter' under Curses).
+ * The `grep' action bevahaviour has changed; instead of in a form,
+   matches are shown in a read-only document that is only closed
+   explicitly. Each change can be moved to by using the new
+   `open_under_cursor' (`ctrl-enter' or `alt-enter') action shown above.
+ * In a similar way, the `build' action also shows its output in a
+   read-only document instead of a form that is not automatically closed,
+   making the browsing and editing of compilation errors more useful.
+ * Forms in the Curses driver have changed their look. All fields in a
+   form are shown simultaneously on screen. This is one step to close
+   bug #1249.
+ * A set of character encoding converters have been natively implemented,
+   improving those platforms where the 'iconv' library is not available
+   (i.e. Windows and old Unix systems). The available encodings can be
+   shown by executing
+
+	dump(EMBEDDED_ENCODINGS);
+
+5.0.2
+-----
+
+ * New option to mark end of line characters, with its associated
+   configuration directive (mp.config.mark_eol).
+ * The end of line string (mp.config.eol) is now system-dependent (so,
+   on win32, it's set by default to \r\n).
+ * Copy and paste on GTK has been fixed (this was bug #1205).
+ * Fixed some redrawing issues (bug #1236 and others).
+ * Ctrl-keys no longer fail on GTK (bug #1252).
+ * New document _Minimum Profit Action Reference_.
+ * New action `build', for building Makefile-based projects. See the
+   action reference for details.
+
+5.0.1
+-----
+
+ * Improved line edition in the Curses interface (full edition plus file
+   expansion using the `tab' key in open / save file prompts).
+ * Auto-indenting is temporarily disabled while pasting (bug #1250).
+ * New document _Minimum Profit Function Reference_ (contributed by Lee Page).
+
+5.0.0
+-----
+
+ * The search hit is highlighted.
+ * When invoked from the menu, the `record_macro' action dropped
+   the last key (bug #1245).
+ * A Curses configuration detection has been fixed that made
+   some things behave strangely, as the drop-down menu not
+   responding under some terminal configurations (bug #1247).
+ * The Curses menu no longer crashes if it doesn't fit on
+   the screen (bug #1195).
+ * The -f (execute script) command line argument really works
+   (bug #1240).
+ * New manual page (bug #1219) and README files (bug #1218).
+ * Updated documents, _MPSL Overview_ and _Minimum Profit Cookbook_.
+ * New documents, _Minimum Profit Data Model_ and
+   _Creating interactive dialog boxes_.
+
+5.0.0-rc3
+---------
+
+ * New session support. All open documents and its current position
+   can be stored / retrieved with the new `save_session' and
+   `load_session' actions. Two new configuration flags has
+   been added: `mp.config.auto_sessions', to automatically load / save
+   sessions, and `mp.config.local_sessions', to save sessions in the
+   currently active directory instead of in the home directory.
+ * Multiple key sequences for invoking actions (ala Emacs) are
+   now possible. To create them, just assign a hash to a keycode
+   instead of an action. For example, to assign the key sequence
+   Ctrl-x Ctrl-f to `open' and Ctrl-x Ctrl-s to `save', you can use
+
+	mp.keycodes['ctrl-x'] = {
+		'ctrl-f'	=> 'open',
+		'ctrl-s'	=> 'save'
+	};
+
+ * In the curses version, confirmations now have default values
+   (shown in brackets), activated with the ENTER key.
+ * New action `close_all', that closes all documents.
+
+5.0.0-rc2
+---------
+
+ * New `complete' action, that asks for completion on the current
+   word using any of the words found in the same document.
+ * New `redo' action, to revert undo operations.
+ * The global configuration file `/etc/mp.mpsl' is also executed.
+ * In the `replace' action, the substitution string can contain
+   the special character &, that will be replaced by the matched
+   string (as in the `sed' command line tool).
+
+5.0.0-rc1
+---------
+
+ * New support for translating key sequences into MP keycodes, mainly
+   for redefining ANSI sequences not supported by current terminfo /
+   termcap. For example, if your terminal sends the ANSI sequence [6;5~
+   whenever you press Ctrl+page down, you can add to your config file
+   the following line:
+
+	mp.add_keyseq("[6;5~", 'ctrl-page-down');
+
+ * A new `system_command' action, to pipe from and to system commands
+   (Closed bug #1120).
+ * A new `word_count' action, to count the number of lines and words
+   in a document (or in the selected block).
+ * Incorrect word wrapping has been fixed (Closed bug #1137).
+ * Search and replace expand backslashed characters like \n and \t
+   (Closed bug #1214).
+ * New timer functionality has been added; a user function can be called
+   each time a specified period of milliseconds have elapsed. If, for
+   example, you want to print a string on standard output each two
+   seconds, you can run
+
+	mp.timer(2000, sub { print("Hi, world!\n"); });
+
+5.0.0-pre1
+----------
+
+ * Password-protected files fully work.
+ * Moving to next / previous instance of character (bound to ctrl-page-down
+   and ctrl-page-up) works (Closed bug #1131).
+ * Files open MUCH faster.
+ * Selection can be done by pressing shift + any movement key (Closed bug #1182).
+ * Dialog boxes work under Windows 98 (Closed bugs #1196, #1197).
+ * Block selection can be done by dragging the mouse (Closed bugs #1200, #1201).
+ * New `grep' functionality (Closed bug #1116).
+ * New action `sync' (save all modified documents, closed bug #1206).
+ * New action `document_list' (show a box with all open documents, allowing
+   the selection of the active one; closed bug #1211).
+ * Translations ported from mp 3.x (closed bug #1169).
+ * Most syntax highlight definitions ported from mp 3.x (closed bug #1168).
+
+4.99.12
+-------
+
+ * The menu in the Curses interface has been (finally) implemented.
+ * Interfaces have changed internally; a new driver function, mp.drv.form()
+   serves as a dialog box generic generator, resulting in more useful queries
+   for data (for example, all data required for a `replace' operation is
+   queried in only one dialog box). The Curses implementation, though
+   functional, is still just a wrapper to the old interface functions
+   and fields are queried one-by-one (which is annoying). This is an example
+   of a call to mp.drv.form(); the r variable will contain an array of 5
+   elements (one per widget) containing the values, or NULL if user cancelled:
+
+	local r = mp.drv.form( [
+	
+		/* a 'text' widget */
+		{ 'label'	=> "Replace this:",
+		  'type'	=> 'text',
+		  'history'	=> 'search',
+		  'value'	=> 'THIS' },
+	
+		/* another one */
+		{ 'label'	=> "With:",
+		  'type'	=> 'text',
+		  'history'	=> 'replace',
+		  'value'	=> 'THAT' },
+	
+		/* a 'password' widget */
+		{ 'label'	=> 'Password:',
+		  'type'	=> 'password' },
+	
+		/* a 'checkbox' widget */
+		{ 'label'	=> "Case sensitive:",
+		  'type'	=> 'checkbox',
+		  'value'	=> mp.config.case_sensitive_search },
+	
+		/* a 'list' widget */
+		{ 'label'	=> 'All C files:',
+		  'type'	=> 'list',
+		  'list'	=> glob('*.c'),
+		  'value'	=> 10 }
+	] );
+
+ * Password protecting files works (but they cannot be opened yet, so this
+   is far from useful, unless you use mp 3.x to open them).
+ * Case sensitivity in searches can be controlled with the new
+   config flag mp.config.case_sensitive_search.
+ * Replace (and global replace by use of the new config flag
+   `mp.config.global_replace') works.
+
+4.99.11
+-------
+
+ * Syntax highlight definition have changed (again, hopefully for the last
+   time). Definitions are now an array of attribute name / regexes in which
+   the order is significative.
+ * Template insertion works.
+ * Tag selection (open the file where a symbol is defined) works.
+ * Symbol completion (using tags) works.
+ * Closed bugs #1159, #1158, #1153, #1161.
+
+4.99.10
+-------
+
+ * A big advance in the Curses interface; alerts, confirmations, and open
+   file, save file, search and generic prompts are working. Still lacking
+   the selection lists (as the rest of interfaces) and the menu.
+ * Improved menus; if an invalid action is added to a menu, it's shown
+   followed by a ?; if a key is bound to that action, it's shown between
+   square brackets.
+ * For systems lacking iconv support (MS Windows), a crappy, ad-hoc utf-8
+   converter has been added. This means that hitting `escape' and typing
+   `encoding('utf-8');' makes reading and writing utf-8 encoded files
+   possible on every system.
+ * New action `join_paragraph', to join current paragraph all in one line.
+ * New action `word_wrap_paragraph', that re-word-wraps current paragraph.
+   Word wrapping must be set ('mp.config.word_wrap = number;') for this to
+   work.
+
+4.99.9
+------
+
+ * The GTK and win32 drivers now include a native open/save file dialog.
+ * Interactive help (help for the word under the cursor, triggered by
+   pressing `f1') works.
+ * The menu in GTK and win32 works.
+ * New icon!
+ * Some bugs that caused random crashes has been fixed.
+ * New action `exec-doc', that executes the active open document as
+   MPSL code.
+
+4.99.8
+------
+
+ * New configuration option `mp.config.tabs_as_spaces', to store tabs
+   as spaces.
+ * Each syntax highlight definition can contain an optional function
+   called detect() that receives the document as argument and can be used
+   to tailor special detection rules.
+ * A big part of the internal storage of colors and attributes have
+   been rewritten to make it more dynamic.
+ * Tag target for the word over the cursor is shown in the status line.
+ * Move word left works.
+ * Opening an already open file makes it the active one instead of
+   re-opening it.
+ * The `execute code' action has been remapped from `ctrl-f1' to escape.
+ * Spellchecking via ispell works (though it's SLOW!). Activate it by
+   hitting escape and typing:
+
+	mp.ispell(1);
+
+ * By default, files are now unlinked before (re)written. File permissions
+   and ownership are restored if available. This behaviour can be disabled
+   by setting `mp.config.unlink' to zero.
+ * The GTK driver drawing code has been optimized, so it's much more
+   responsive now.
+
+4.99.7
+------
+
+ * The `modified' flag of documents is maintained, so now closing files
+   with pending modifications ask for confirmation. Also, the %m status
+   line directive works (marking modified files with an asterisk).
+ * Flex and bison are no longer needed to build.
+ * The `close window' button in GUIs (win32 and GTK) now generate the
+   special keycode `close-window'.
+ * The `exit' action now closes all open documents, asking for saving
+   confirmation on those modified.
+ * Temporary versions of the `open' ans `save' actions (using
+   mp.drv.readline() instead of an ad-hoc open file dialog) have
+   been implemented.
+ * The GUI interfaces now can have their font preferences configured
+   by using mp.config.font_face and mp.config.font_size.
+ * The actions `zoom-in' and `zoom-out' (font size rescaling, bound to
+   `f11/f12' and `ctrl-kp-minus/ctrl-kp-plus') have been implemented.
+ * New mouse-related actions; `move-to-mouse-position', `move-mouse-wheel-up'
+   and `move-mouse-wheel-down'.
+
+4.99.6
+------
+
+This is an EXPERIMENTAL version for evaluation purposes only. There are
+many things that aren't implemented, others fail miserably and many more
+do it incorrectly. Basically, what is known to work is:
+
+ * Basic text editing fully works. I've been using it for six months or so
+   to maintain itself, and there has not been a crash in three months,
+   more or less.
+ * Scripting works fine (90% of Minimum Profit 5.x itself is implemented
+   in MPSL, its internal scripting language).
+ * Undo works fine. It's bound to ctrl-z.
+ * Works cleanly in an UTF-8 environment.
+
+I do development on the GTK version, so it's where it works best. The
+curses version lacks many of the interface (alerts, confirmations,
+asking for text, etc.), so it's barely usable. The win32 version seem
+to work, but it needs to be manually installed and probably need some
+tweaking.
+
+What it doesn't work:
+
+ * The dialogs to open or save a file by its name aren't implemented.
+   There are workarounds for this: files can be opened from the command
+   line and save works correctly if the edited file has a name. Also,
+   files can be opened by hitting `ctrl-f1' (execute script code) and
+   typing:
+
+	mp.open("file-to-be-opened");
+
+ * There is no menu.
+ * No ispell support.
+ * No password protected files.
+ * No grep.
+ * No external commands (so no support for help, tags, etc.).
+ * Some movement commands as moving a word left, moving to matching
+   brackets, etc. are still not implemented.
+ * Only a few syntax highlight definitions are implemented.
+ * Many other things I cannot remember.
+
+Documentation is still scarce: the more interesting bits are inside the
+mpsl/doc directory. This is where the scripting language is documented,
+with some basic overviews and implementation notes (there is even an
+embryo of a PostScript quick reference guide).
+
+Customizing can be done by writing MPSL commands in the ~/.mp.mpsl file,
+which is read on startup.
+
+I have not tried to optimize the internal engine, so it's probably some
+magnitudes slower than the 3.x version.
openSUSE Build Service is sponsored by