Minimum Profit Changelog

What's new in Minimum Profit 5.61

Sep 1, 2023
  • New features:
  • When the `tab' is hit while editing Makefiles, real tabs are always inserted, regardless of the configured tab to spaces conversion. This has been implemented by adding an optional function named pre_event(doc, key) inside a syntax highlight definition, that does the appropriate key conversion and it's called from mp_doc.pre_event() (contributed by aov).
  • Some enhancements to the hex viewer: character groups (control, printable, zeros, etc) are shown in different colors and a vertical, a left/right movable column is shown as a positioning aid, the `ctrl-g' keycode asks for an address offset to jump (Theo).
  • Input read from VCS commands is truncated to at most 2000 lines. This is to avoid waiting forever after commands that dump humungous amounts of data, e.g. from the `git log' of a very big project (contributed by Bix1994).
  • New clipboard configuration knobs: if the `mp.config.clipboard_file' variable is set to a usable file name, it's used as the interchange space instead of the system clipboard; if any of the `mp.config.clipboard_copy_prg' or `mp.config.clipboard_paste_prg' are set to program names, they are used as pipes to write to/read from the content of the clipboard (Claire).
  • A history of saved files (up to 100) is now stored inside the subdirectory `history' of CONFDIR as hard links (only supported on UNIX-like systems).
  • Fixed bugs:
  • Fixed a bug when editing numbers in TUI forms (Tiny).
  • Other changes:
  • Replaced usage of strcpy() and sprintf() with other functions to placate some paternalistic compilers (Claire).

New in Minimum Profit 5.60 (Feb 19, 2023)

  • Fixed bugs:
  • The `section_list' action no longer shows strange lines when the terminal is too short (Theo).
  • Fix NCurses background color setting (contributed by X-Ryl669).
  • New features:
  • New syntax highlight for roff manual page sources (contributed by Mr. Firefly).
  • New syntax highlight for INI-style files, like the ones used by `systemd' (contributed by Mr. Firefly).
  • New syntax highlight for fountain files (a markup language for screenwriting) (contributed by aov).

New in Minimum Profit 5.59 (Aug 13, 2022)

  • New features:
  • New syntax highlight for Rust (contributed by X-Ryl669).
  • New syntax highlight for Markdown (contributed by Susan Bompensiero).
  • Syntax-highlight definitions can include their own `matching_open' and `matching_close' strings that override the global ones (Tiny).

New in Minimum Profit 5.58 (Apr 2, 2022)

  • Bug fixes:
  • Hangups in GTK pasting (it seems it also fixes similar cases in Qt) (contributed by mrnav79).
  • Data loss when breaking a line in very special circumstancies (contributed by Andrew F. Atwood).
  • [ANSI] Added a timeout for terminal size detection (Claire).
  • [Curses] Keycodes alt-minus and alt-plus (Claire).
  • Very minor issues in some syntax highlight definitions.
  • Other changes:
  • The `word_count' action also shows the number of characters in the file or the selection (Theo).
  • Changed real tab visualization (Theo).
  • [mptxt] Added support for bullets in troff (contributed by aov).
  • [mptxt] Added support for images using the img:// pseudo-url (contributed by aov).

New in Minimum Profit 5.57 (Feb 3, 2022)

  • Important changes:
  • All configuration files have been moved to the `mp' subfolder inside a system-dependent configuration folder. This folder is under the `~/.config' path (or the content of the XDG_CONFIG_HOME environment variable) in UNIX-like systems or under the user application data path in MS Windows (the system value for CSIDL_LOCAL_APPDATA). Currently existing files are automatically moved to this new location (Theo).
  • Bug fixes:
  • [ANSI] Increased color detection waiting time for slow terminal emulators like `mate-terminal' (Theo).

New in Minimum Profit 5.55 (Sep 16, 2021)

  • Important notice:
  • The source code repositories of submodules MPDM and MPSL have merged into main Minimum Profit (mp-5.x). If you build MP from Git sources, you must execute `make distclean' and reconfigure.
  • Bug fixes:
  • [ANSI] Bold / bright color confusion (contributed by X-Ryl669).
  • [Curses] Bold / bright color confusion (contributed by X-Ryl669).
  • Some tokens were not shown in MPSL syntax highlight (Claire).
  • Completion works in MPSL syntax highlight (Claire).

New in Minimum Profit 5.54 (Sep 13, 2021)

  • New features:
  • New syntax highlight definitions for the Go language (contributed by HooverNixie).
  • Bug fixes:
  • Using x{HEX} to enter Unicode characters in search and replace works again (Claire).
  • Other changes:
  • [mptxt] Right-aligned lines have been implemented; they are marked with a leading >. Additionally, centered lines can also be marked between and > and < (contributed by aov).

New in Minimum Profit 5.52 (Jun 28, 2021)

  • Bug fixes:
  • [Qt] Fixed compilation issues (contributed by PamM0rel).
  • Memory leak in double screen mode (Tiny).

New in Minimum Profit 5.51 (Jun 23, 2021)

  • NEW FEATURES:
  • New actions `move_para_up' and `move_para_down', to move the cursor to the beginning of the previous or next paragraph (Claire).
  • Related to the above, actions `move_section_up' and `move_section_down' behave like `move_para_up' and `move_para_down' when the file being edited has no section definitions (e.g. on plain text files) (Claire).
  • [ANSI] When copying text into the clipboard, ANSI code OSC 52 is emmited; if the underlying terminal emulator supports it (for example, xterm under X11), this code will transfer MP's clipboard to the system one. This works even if MP is running on a remote server via SSH (Theo).
  • IMPROVEMENTS:
  • Added section detection for Gemini / Gemtext files (contributed by cox778).
  • [ANSI] Added more alt+character keycodes (unused, free for user remappings). Specifically, all alt+number keycodes are usable (Theo).
  • Added more bracket and quoting character pairs for 'seek_matching' action and visual matching (contributed by aov).
  • BUG FIXES:
  • Fixed a wrapping-related error in the directory editor, that could cause failures when renaming files (contributed by MrNix94).
  • [win32] Force fonts to be FIXED_PITCH (contributed by Michael F. Woods).
  • OTHER CHANGES:
  • [GTK] Set default font size to 10, like in Qt and windows drivers (contributed by Michael F. Woods).

New in Minimum Profit 5.50 (Apr 28, 2021)

  • Critical bug fixes:
  • Fixed a severe font bug in both MS Windows 32 and 64 bit.

New in Minimum Profit 5.49 (Apr 23, 2021)

  • New features:
  • Periodic saving of documents has been implemented (not overwriting the original path, but in a different place) to prevent data loss in case of editor or computer crashes. On startup, if recovery files are detected, they are opened for further inspection. The period (in seconds) can be configurable by the `mp.config.auto_save_period' variable. If it's set to 0, automatic saving of files is disabled.
  • New action `replace_next' (not bound by default to any key, only from the menu).
  • Bug fixes:
  • The usage of & as a placeholder for the matched text in the `replace' functions works again.
  • Vertical copy works again under GUI interfaces.

New in Minimum Profit 5.48 (Mar 22, 2021)

  • Improvements:
  • [ANSI] Added double buffering, improving general speed and response (Theo).
  • Words explicitly ignored from the spellchecker (detected by calling the `seek_misspelled' action and disabled by calling `ignore_last_misspell') are now stored in the state so that they are not forgotten in next sessions (Tiny).
  • Also, these user-included words are also taken into account for completion if spellchecking is active (Tiny).
  • New syntax highlight definitions for Gemini / Gemtext files (contributed by cox778).

New in Minimum Profit 5.47 (Mar 3, 2021)

  • Improvements:
  • The spellchecking code has been optimized for speed (Tiny).
  • Updated italian translation (contributed by Sergio).
  • New syntax highlight definition for git logs and release notes (Tiny).
  • New git operation to show a log from the latest tag (Tiny).
  • Bug fixes:
  • [ANSI] Allow remapping single character keycodes like the rest of the drivers (Theo).
  • Fixed rare crash in attribute filling under OpenBSD (Claire).
  • [Win32] Set `mp.config.eol' to `rn' also under 64bit Windows (Tiny).
  • [ANSI] Fixed bad processing of a repetitive string of backspace characters (Theo).
  • [TUI] Fixed initial position in lists (contributed by FltkLover).
  • Other changes:
  • If defined, the XDG_CONFIG_HOME environment variable is used instead of a hardcoded `$HOME/.config' (contributed by aov).
  • New function `mp.copy()', to copy a string or array into the clipboard (Tiny).

New in Minimum Profit 5.46 (Feb 2, 2021)

  • Improvements:
  • In text interfaces, typing on a selection list filters by text the elements shown (contributed by FltkLover).
  • New configuration variable `mp.config.dark_mode', to switch between dark / light color modes (default: 1, dark) (Claire).
  • Important changes:
  • Visual wrapping is now on by default. If text disappearing beyond the right margin is preferred, you can set the configuration variable `mp.config.visual_wrap' to 0. Also,
  • Remember that visual wrapping can always be toggled using
  • The `ctrl-k' keycode (Theo).
  • If the ~/.config directory exists, the user configuration file is assumed to be ~/.config/mp.mpsl (unless a traditional ~/.mp.mpsl file already exists) (Theo).
  • Bug fixes:
  • Fixed word count when visual wrapping is on (Claire).
  • Other changes:
  • The `word_count' action also shows an (approximate) number of pages.

New in Minimum Profit 5.43 (Oct 11, 2020)

  • New features:
  • The MPSL source is deployed in .zip format, so the disk
  • footprint is smaller.

New in Minimum Profit 5.42 (Sep 7, 2020)

  • New features:
  • Speed improvements in ANSI and ncurses drivers. This will be specially noticed in slow systems like the oldest Raspberry Pies.
  • In build (makefile) and grep logs, the ENTER key activates the 'open_under_cursor' action.
  • Bugfixes:
  • Fixed a rounding error in emacs-style scrolling.

New in Minimum Profit 5.41 (Sep 7, 2020)

  • Bug fixes:
  • Fixed crash in Qt5 startup.
  • Fixed typo in Perl syntax highlight.

New in Minimum Profit 5.2.1 (Apr 15, 2013)

  • 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 you're 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

New in Minimum Profit 5.2.0 (Apr 20, 2011)

  • 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.

New in Minimum Profit 5.1.4 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.1.3 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.1.2 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.1.1 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.1.0 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.1.0-rc1 (Nov 10, 2010)

  • KDE4 support.
  • Rectangular block copy/paste support.
  • New syntax highlight for the Euphoria language.

New in Minimum Profit 5.0.3 (Nov 10, 2010)

  • 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

New in Minimum Profit 5.0.2 (Nov 10, 2010)

  • 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.

New in Minimum Profit 5.0.1 (Nov 10, 2010)

  • 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).

New in Minimum Profit 5.0.0-rc2 (Jul 6, 2007)

  • New 'complete' action, that asks for completion on the current word using any of the words found in the same document.