Minimum Profit Release Notes ============================ 5.61 ---- * 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). 5.60 ---- * 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). 5.59 ---- * 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). 5.58 ---- * 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). 5.57 ---- * 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). 5.56 ---- * New features: [ANSI] The `mp.config.ansi_rgbcolor' configuration variable can now be set to: 2, force the use of RGB color; 1, autodetect; or 0: disable completely and use traditional 16 colors. Autodetection is done by asking the terminal for color information and disabling RGB use if there is no valid response. Please take into account that some terminal emulators and multiplexers (e.g. `tmux' or `st') do not report color information even though they totally support it (contributed by Susan Bompensiero). * Other changes: [mptxt] Lines ending with < are left-aligned (contributed by aov). 5.55 ---- * 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). 5.54 ---- * 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). 5.53 ---- * New features: Added italic text in syntax highlight comments to all drivers that support it (Theo, Tiny). * Bug fixes: Some cursor positioning issues in the `seek_matching' action (Theo). * Other changes: Some tweaks to syntax highlight definitions (C, JSON) and a new one for email messages (Claire). On architectures that don't support archive embedding, zip files can also be used (Theo). 5.52 ---- * Bug fixes: [Qt] Fixed compilation issues (contributed by PamM0rel). Memory leak in double screen mode (Tiny). 5.51 ---- * 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). 5.50 ---- * Critical bug fixes: Fixed a severe font bug in both MS Windows 32 and 64 bit. 5.49 ---- * 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. 5.48 ---- * 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). 5.47 ---- * 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 `\r\n' 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). 5.46 ---- * 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. 5.45 ---- * Bug fixes: Strange behaviour in `delete_left' action at the beginning of a document (Tiny). Hangup in a corner case when mixing visual word wrapping and hard word wrapping (Theo). Strange colors in newer ncurses (contributed by X-Ryl669). In the ANSI driver, set the default attribute before deleting up to the end of line to avoid spurious inverse colors in not-very-smart terminal emulators like kitty (Tiny). * Improvements: Better config.sh configurability and package detection (contributed by rofl0r). 5.44 ---- * Bug fixes: Fixed backwards search (hungups and skipped matches). Fixed ugly attributes at exit in the ANSI driver. Fixed compilation in GTK v.2. Fixed JSON syntax highlight. 5.43 ---- * New features: The MPSL source is deployed in .zip format, so the disk footprint is smaller. 5.42 ---- * 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. 5.41 ---- * Bug fixes: Fixed crash in Qt5 startup. Fixed typo in Perl syntax highlight. 5.40 ---- * Important changes: New software maintainers. 5.39 ---- * New features: The usage of Unicode characters in text menus, games, etc. can be disabled by setting the configuration variable `mp.config.use_unicode' to 0. * Other changes: Some internal optimizations to visual wrapping code. 5.38 ---- * New features: A new visual wrap mode, where lines longer than the application window wrap (with special marking) instead of disappearing to the right. It's implemented in the `toggle_visual_wrap' action (bound by default to `ctrl-k') and can be activated from the configuration file by setting `mp.config.visual_wrap' to 1. * Other changes: When hard word wrapping is not set, the `word_wrap_paragraph' action behaves like `join_paragraph' (i.e. word-wraps to an infinite column). 5.37 ---- * Bug fixes: Fixed compilation issues under FreeBSD and OpenBSD. * New features: New game 'Puzzle'. 5.36 ---- * Bug fixes: When using -f or -F, compiler errors are returned. Fixed not-that-read-only read-only documents. Fixed crash in GTK clipboard. The Qt driver now shows less 'shaky' text. * Other changes: The Unicode character to show tabs is now U+2192. The mptxt export functions now manage 'strong' and 'em' spreading multiple lines. 5.35 ---- This release includes a big set of new features and bugfixes by fellow developer X-Ryl669. * Important changes: Some default keycodes have been changed: `ctrl-space' now triggers `complete' instead of the menu. `shift-f10' now opens the menu in text interfaces. `ctrl-u' now calls `complete_with_clang' instead of previous `complete'. * New features: History (search, replace, etc.) is saved. Interactive search when entering filenames in text interfaces (work by X-Ryl669). Reduce the number of undo while typing (once every second at maximum) (work by X-Ryl669). Allow hint to also select directories in file selector (work by X-Ryl669). Add support for mouse wheel scroll down event on ncurses (work by X-Ryl669). Add support for showing list wherever we want in text interfaces (work by X-Ryl669). Make tag completion inline with context instead of on a new window in text interfaces (work by X-Ryl669). Add support for multiline editing: When you have selected multiple lines in a rectangular block, and started inserting text, it'll be reproduced on all lines (work by X-Ryl669). Added clang completion for C/C++ languages (work by X-Ryl669). HTML export now includes a page break in CSS. Added footer page number in troff exporting. Added footer page number in RTF exporting. New command line argument -F, to execute an MPSL script and exit immediately after. Tabs are always shown differently from spaces. * Bug fixes: Fixed a serious bug in GTK redraws. Fixed crashes in Qt5. Fixed directory walk up in text interfaces file browser (work by X-Ryl669). Fixed block marking options from the main menu. Fixed insert_time_stamp action. Fixed some bugs in completion. Fixed a bug when drawing double-width characters (they were sometimes printed twice). Fix a of-by-one error in the vertical selection code while deleting (work by X-Ryl669). Fix a of-by-one error in indenting a block of many selected lines where the last line was never indented (work by X-Ryl669). Fix a bug that's crashing mp when loading a session (work by X-Ryl669). Fixed Qt building. 5.34 ---- * New features: New syntax highlight definitions for RTF files. * Bug fixes: The GTK clipboard code has been rewritten to support copy / paste of characters with high Unicode points. Fixed some memory leaks in underlying libraries. 5.33 ---- * New features: Double page mode: if the viewport screen is wider than the value in mp.config.double_page (default: 120), two pages are shown simultaneously. If you don't like this mode, set mp.config.double_page to 0 in the configuration file. New command line option -ni for "non-interactive" mode. Expected to be used with -e or -f. No video driver is tried and it exists immediately after executing the code or script. Native encoding support for Windows-1252 code page. * Other stuff: A new script `ms-windows-build.sh', to build 32 and 64 bit MS Windows binaries using mingw32. 5.32 ---- * New features: There is a new version format (2) for encrypted files. The cypher algorithm is the same, but includes a CRC, so that it's possible to know if the content has been correctly decrypted (i.e. the decryption password is valid). New encrypted documents use version 2, but version 1 documents are not automatically upgraded. If you want to do it, open a version 1 document, hit ESC, type `mp.active.crypt_ver = 2' and save it back. *NOTE*: This encryption format, though it uses a known algorithm, has not been audited by anyone remotely versed in cryptography, so you are at your own risk. The ANSI driver now support 256 color; if the config variable `mp.config.ansi_color256' is set to non-zero, the 'gui' color definitions shall be used instead of the usual 'text' definitions. In Linux and similar systems, both a .desktop and icon files are installed. In the 'build target' list, also add the generic syntax-dependent build targets at the end (i.e. when editing a Python file in a Makefile-controlled folder, the execute and syntax check options are shown at the end). New mptxt exporting to .troff format. New mptxt exporting to .html format. * Other changes: The `export_as_rtf' action no longer exists; it has been replaced by `export'. There has been many internal changes due to both MPDM and MPSL being moving targets, now that they are heavily refactored. None of these changes add anything new nor fix previous bugs. Fixed some whining about deprecated usage in GTK driver. In the easter egg / hidden game 'Maze', pressing f1 shows a compass hint instead of the hero. 5.31 ---- * Important changes: License change: released into the public domain. * Improvements: The RTF export function has been rewritten. The generated markup is much better and shows OK in most of the inconsistent, crappy world of the RTF reader implementations. Also, there are several configurable options (see the `doc/mp_configuration.txt' document). * Bug fixes: Many that I don't remember. Mostly they were new bugs introduced by changes in MPDM and MPSL. Fixed Curses driver, broken some versions ago. * New features: There is native encoding support for MSDOS 437 and 850 page codes. New Pascal syntax highlight (yes, Pascal, no kidding). I've been digging in very old shit. The ANSI driver now accepts alt-letter keycodes. The execute MPSL code function always dumps its output to the dump window.