Skip to content

NEWS‐4.9.0

Yury V. Zaytsev edited this page Apr 20, 2026 · 41 revisions

Midnight Commander 4.9.0

During this release cycle, we migrated our development infrastructure from our Trac instance to GitHub. The issue tracker is now merged with our canonical repository, and the new website is built using mkdocs.

What's Changed

View all closed tickets for this release

Core

  • Remove support for PCRE and PCRE2 search engines (#4655)
  • Remove configure option --enable-charset / --disable-charset, charsets are always enabled (#4674)
  • Rework building with NCurses (#3628):
    • ncursesw is preferred over ncurses
    • remove --with-screen=ncursesw
    • search order: system path (--with-ncurses-libdir, --with-ncurses-includedir), then pkg-config (NCURSES_LIBS, NCURSES_CFLAGS)
  • Remove "Display bits" dialog (#1612)
  • Add about box for mc and show display info there (#4704)
    • Extract year from translatable copyright message (#4875 / #4876)
  • Add SortByVersion keymap entry (#4695)
  • Add mc-wrapper for fish shell (#4726)
  • Add option "Preserve ext2 attributes" for copy/move file operations (#4688)
  • Add support for brotli compression (#4835)
  • Add %v and %V macros to user menu (#4865)
  • Add xterm-direct* as recognized terminal types (#4899 / #4900)
  • Add file cloning support for FreeBSD, Solaris and macOS (#4991 / #5082 / #5083)
  • strutil: use signed type for string length (#4706)
  • Show directory size in bsize format if computed (#4700)
  • Enable filename scrolling (add default bindings) and fix background color (#4685)
  • Panelize: allow restoring external panelize and document it (#3767 / #4839)
  • Subshell integration
    • Drop support for bash 1.x (#4793)
    • Query command and cursor position in one step (#4810 / #4856)
    • Cleanups and test fixes for the latest macOS (#4634 / #4853 / #4859)
  • Faster "Find file" by using d_type, if available (#4891)
  • Column separator vertical lines now extend to touch the outer frame (#2109)
  • Quick view panel: add title (#4948)
  • Tree panel: change title color to indicate active panel (#4948)
  • Remove torben_fj_mode panel navigation strategy (#4978)
  • Remove --colors command line option and MC_COLOR_TABLE environment variable (#4908)
  • Remove S-Lang-only resetting of softkeys for extinct HP terminals (#4983)
  • Remove the broken fast_refresh option (#4992)

VFS

  • Support for SquashFS in extfs (#3147)
    • usqfs parser ignored first 4 lines of the file listing (#4678)
  • Support browsing Android packages (APK) in mc.ext (#4711)
  • Add extension-based fallbacks for handling JAR and WAR files to mc.ext (#4861 / #4862)
  • Remove obsolete VFS for defunct Bad Penguin Linux distro packages (#4965 / #5013)

Editor

  • Add menu item to toggle right margin (#4683)
  • Update RPM SPEC file syntax highlighting (#4638)
  • Highlight meson_options.txt as meson.build (#4660)
  • Add eTS and JSON5 syntax highlighting (#5090)
  • Add new syntax highlighting rules:
    • APKBUILD (Alpine package build script) (#4637)
    • Caddyfile (#4840)
    • Configuration files (conf/cnf) (#4788)
    • Dokerfile (#4788)
    • Mutt config files (#4645)
    • Turtle RDF (#4644)
  • Update syntax highlighting rules:
    • sh.syntax:
      • add umask and move more commands to built-in shell command list (#4765)
    • php.syntax:
      • add missed magic constants (#4785)
      • grep real list of core reserved constants from documentation (#4786)
      • update cURL, OpenSSL, PostgreSQL and MySQLi functions (#4787)
      • add missing words and sorting lines alphabetically (#5057)

Viewer

  • Handle bold underlined text in manual pages (#3531)

Diff viewer

Misc

  • Code cleanup (#4633, #4748, #5035, #5042, #5051)
  • cons.saver cleanups (#4847 / #4848 / #4857)
  • Remove obsolete cppcheck & doxygen infrastructure (#4573)
  • Migrate formatter from indent to clang-format (#4592)
  • Use compiler attribute detection and add nonstring annotations (#4690)
  • Implement online man pages rendering and extend linter (#4666, #4691)
  • Use HTTPS for OSU OSL mirrors (and everywhere else) (#4570)
  • Fix and clarify description of user menu macros (#4734)
  • Improved padding in pulldown menus (#4911)
  • More balanced column widths in brief listing mode (#4906)
  • Add heic, heif and hif image support (#4923)
  • Skins
    • Add true color support with ncurses (#4821)
    • Recognize TERM *-direct values as True Color-capable (#4137)
    • Create skin showroom by adopting PHPLego's skin editor repository (#2147)
    • Various fixes to shipped skins (#4684)
    • Fix editor's replacement character color in some skins (#4871 / #4877)
    • Support double frame characters in ncurses (#3158)
    • No longer bolden single frame characters in ncurses when double frame is unavailable (#4860)
    • Fall back to single frames or ASCII characters if the Unicode characters aren't available in the 8-bit locale (#4799)
    • Make frame characters work in PuTTY with UTF-8 encoding out of the box (#3820)
    • Demonstrate rounded corners and dashed lines in the sand256 skin (#4813)
    • Respect --stickchars in the help page's big logo (#4301)
    • New keywords dselnormal and dselfocus for listbox's selected entry (#3160, #4915)
    • New keywords *frame for frame color in various contexts (#4931)
    • New keywords hintbar, shellprompt and commandline for a fully skinnable UI (#4974)
    • Add [filehighlight] _default_ color (#4996)
    • Don't highlight non-functioning menu hotkeys when a menu is dropped down (#4920)
    • Replace hiddenfiles-show-char in featured skins with middot (#1808 / #4949)
    • Documentation updated and moved to a separate README (#4896)
    • Only list skin filenames ending in .ini in the skin selector (#4952)
    • Wider skin selector window (#4956)
    • Rename the [Lines] section to lowercase [lines] (#4954)
    • Use rgb000 instead of black in the gray-* skins so that it's pitch black no matter the terminal's palette (#4971)
    • Fix and rework the hardwired black and white skin of mc -b (#3023, #4985)
    • Support the NO_COLOR environment variable (#5004)
  • Repository
    • Update .gitignore patterns (#4728)
    • Bump actions/github-script from 7 to 8 (#4776)
    • Bump actions/download-artifact from 4 to 5 (#4758)
    • Bump actions/download-artifact from 5 to 6 (#4849)
    • Bump actions/download-artifact from 6 to 7 (#4936)
    • Bump actions/download-artifact from 7 to 8 (#5033)
    • Bump actions/upload-artifact from 4 to 5 (#4850)
    • Bump actions/upload-artifact from 5 to 6 (#4937)
    • Bump actions/upload-artifact from 6 to 7 (#5032)
    • Bump actions/checkout from 3 to 4 (#4656)
    • Bump actions/checkout from 4 to 5 (#4757)
    • bump actions/checkout from 5 to 6 (#4924)
    • Adjust hints to suggest reporting bugs to our GitHub tracker (#4972 / #4973)
  • Website
    • Fix typo on the home page (#4827)
    • Add reference to the in-tree documentation (#4828)
  • Convert URLs of the manuals to explicit hyperlinks (#4963, #5016)
  • Clarify 'Reverse files only' and add 'Invert selection' to the manual (#4902 / #4918)

Fixes

  • doc: fixes to English, Spanish, Polish and Russian man pages (#5094, #5095, #5096, #5097, #5098, #5099)
  • FTBFS with ncurses-5.9 (#4800, #4817)
  • Crash upon M-E (View/Edit history) if visited filenames contain special chars (#4752)
  • Data loss when canceling move file operation across volumes with preserving ext2 attributes (#4759)
  • Leaking of %pkglibexecdir% into man pages in some cases (#4729)
  • Patterns in mc's configuration files are assumed to be in ASCII character set (#4665)
  • mc doesn't fully resize itself if reading directory while terminal's resized (#4630)
  • Clicking on the panel sort order indicator resets ordering by first column (#4647)
  • ctrl-x ctr-t doesn't copy selected file on other panel to command line (#4716)
  • Segfault when dragging mouse in half-empty panel (#4651)
  • Fails to read directory if resized while external editor was running (#4636, #4673, #4712, #5031)
  • File name in the error message is elided (#4661)
  • Condition on USE_STATVFS in filegui.c desynchronized with one in mc-get-fs-info.m4 (#4664)
  • Incorrect kitty keyboard protocol parsing of Ctrl-O (#4663)
  • Right arrow on file in Lynx-like motion mode works like Tab if command prompt is hidden (#4736)
  • alt-j moves below the bottom of the list to an invalid position (#4761)
  • Select first user menu item matching condition, not second (#4555)
  • Clearing of the panel and input line history is not saved (#4783)
  • The command line history is deleted when file panel is switched to file list mode from any other one (#4919, #4944)
  • Wrong CWD of current panel after call of directory history of other panel (#4807)
  • Position of selected item in the directory history is moved down by one (#4832)
  • Button bar not updated when switching away from Quick view (#4940)
  • Wrong focus state after scrolling in Quick view (#4941)
  • An assertion error when quitting mcview/mcedit (#4969)
  • Fixes to Emacs keymap (Cut / Remove) (#3755 / #4866)
  • locale: avoid nested gettext calls and fix untranslated strings (#4868 / #4887)
  • subshell: reorder pty/pipe file descriptor acquisition (#4724)
  • subshell: broken PS1 prompt when using mksh (#4824)
  • subshell: no colored prompt after switching panels off for the first time (#4815)
  • subshell: sporadic lockups upon directory change due to subshell on macOS (#4071)
  • subshell: do not override the user's prompt (#3792, #4634, #4723)
  • subshell: prompt resynchronizes too late after invalid UTF-8 (#4801 / #4802)
  • subshell: fix entering directories with special characters (e.g. newline) or invalid UTF-8 (except with tcsh) (#2325 / #4884)
  • subshell: fix entering directories with long path (#4480)
  • subshell: read from pty in nonblocking mode (#4780)
  • subshell: fix slow startup in various circumstances (#4548, #4625)
  • wrappers: invoke external rm command avoiding shell alias or function (#4883)
  • tty: TIOCSWINSZ ioctl loses extended pixel sizes (#4443 / #4797)
  • tty: mouse clicks don't work when built with ncurses-6 (#4144 / #4796)
  • tty: Allow more than 128 or 256 color pairs (#5018)
  • tty: Allocate fewer ncurses color pairs so that we don't run out of them on 8-color terminals (#5020)
  • mcedit: segfault after pressing Shift+F4 (#4650)
  • mcedit: segfault when opening Syntax file (#4717, #4738)
  • mcedit: wrong jumping to the bottom of screen in non-fullscreen mode (#4652)
  • mcedit: anchored regex line matching inconsistencies (#4072, #4751, #4966)
  • mcedit: fix basic heredoc highlighting for shell syntax (#4715)
  • mcedit: file is marked as modified if a user_menu item executes but doesn't modify that file (#4733)
  • mcedit: character code in header bar weirdnesses (#4870 / #4897)
  • mcedit: skipped trailing spaces in the last short line in the copied/moved column (#4894)
  • mcedit: fix 'insert control code' function (#4872, #4873, #4874, #5054)
  • mcview: show compressed empty files (#4741)
  • mcview, mcdiff: fix clicking on the Help button (#4927)
  • vfs: buffer overflow in vfs_parse_ls_lga (#4642)
  • vfs: ftpfs: actually use the .netrc password (#3869 / #4831)
  • vfs: sftpfs: customize error message when known_hosts cannot be opened (#4670)
  • vfs: extfs: fix quoting in uwim and other extfs scripts (#4842)
  • vfs: patchfs doesn't work for Z, xz & zst compressed diffs (#4707)
  • vfs: uarj: fix broken arj support (#4882)
  • vfs: ualz: fix broken alz support (#4886)
  • tests: fix "make check" not to leave tmp directories behind (#4879 / #4881)
  • Suppress printing last pwd with -P only for S-F10 (#4834)
  • Remove escaping from dashes in help section titles (#5050)
  • Help window: Add left padding, remove double spacing from help text (#5040)
  • Menu: Don't execute the focused action when clicking on a separator line (#5062)
  • Fix incorrect disabling of widgets in the Configuration dialog (#5087)
  • Do not show color warning with --nocolor (#4981 / #5081)

Clone this wiki locally