31 May 2026
===========

Vifm v0.14.4
------------

Thanks for the bug reports.  This is another (likely the last one) bugfix
release for the v0.14.x series.  The changes included in this release expand or
correct documentation, update text of messages, sample vifmrc files or fix bugs.

Invocation:
 - Reworked --help output to be more compact and readable.

Documentation:
 - Added menu index to the documentation.  Patch by CaptainFantastic.
 - Improved description of the local filter in the documentation.  Thanks to
   CaptainFantastic.
 - Documented quoting and escaping on command-line.  Patch by Kirill Rekhov.
 - Documented name conflict resolution dialog.  Patch by Kirill Rekhov.
 - Rewrote documentation about command-line ranges to make it complete and more
   readable.  Thanks to CaptainFantastic.
 - Improved wording in documentation describing general behaviour of visual
   mode.

Menus and dialogs:
 - Improved potentially confusing wording in the dialog confirming exit while
   background jobs are running.
 - Don't offer "append the tail" conflict resolution option for al and rl
   operations because it's inappropriate for creation of symbolic links.

File preview:
 - Display an error on trying to switch from external preview to raw mode.

Integration:
 - Fall back to using standard::fast-content-type from GLib if
   standard::content-type is missing.  Patch by Jan Palus (a.k.a. jpalus).

Other changes:
 - Added example of handling .deb-files to sample vifmrc.  Patch by Kirill
   Rekhov.
 - Updated sample vifmrc files to use `vi` as a last resort if it exists.
 - Updated list of categories in .desktop-file.  Patch by Jared Cervantes
   (a.k.a. Jaredy899).

Fixes:
 - Fixed :normal not being able to run commands which end with whitespace.
 - Fixed printing newline on cancelling choosing a directory via `--choose-dir`
   option.  Thanks to The Cyberduck.
 - Fixed escaping characters with codes greater than 127 producing garbage.
 - Fixed vifm-media-osx script for modern versions of OS X.  Thanks to
   vulpes-vulpeos.
 - Fixed weird delays in FUSE when running an AppImage caused by a trailing
   colon in $LD_LIBRARY_PATH.  Thanks to qadzek.
 - Fixed a small memory leak on trying to display a map menu which doesn't show
   up because it would be empty.
 - Fixed `vifm-pause` and other helpers not being available from within
   AppImage.  Thanks to Marcin Kowalski (a.k.a. mrkowalski).
 - Fixed vifm.vim not cleaning up buffers properly when used as a netrw
   replacement.  Thanks to Ivan Shapovalov (a.k.a. intelfx) and pascualpobil.
 - Fixed a crash if GLib didn't return a file type.  Patch by Jan Palus (a.k.a.
   jpalus).
 - Fixed undoing of chmod operation not restoring owner's read permission.
   Thanks to aleksejrs.  Patch by Kirill Rekhov.
 - Fixed incorrect progress indicator for dp and do keys in compare view.
   Thanks to aleksejrs.
 - Fixed UID/GID occasionally not being formatted as requested (numeric vs.
   symbolic form) in the UI.  Thanks to vuenn.
 - Fixed rl normal mode key sometimes not moving cursor to the newly inserted
   link and simultaneously logging partial name in the undo history message,
   which is merely informative.
 - Fixed :open not entering symbolic links to directories if there is no "vifm"
   executable in $PATH.  Thanks to CaptainFantastic.
 - Fixed :yank and :delete not handling optional count parameter correctly (a
   regression since v0.11-beta).  Thanks to CaptainFantastic.
 - Fixed completion of :highlight truncating long custom column names.
 - Fixed a Lua column disabling search highlighting for all columns to its
   right.
 - Fixed a buffer overflow in trie implementation (CVE-2026-8997).  Thanks to
   Michał Majchrowicz and Marcin Wyczechowski.
 - Fixed Lua modules written in C not being loaded on Unix-like systems.
   Thanks to Steven Xu (a.k.a. stevenxxiu).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

04 June 2025
============

Vifm v0.14.3
------------

Thanks for the bug reports.  The 'trashdir' saga continues, sorry for the
inconveniences.

Documentation:
 - Improved documentation on the use of registers.  Thanks to aleksejrs.

Menus and dialogs:
 - Say "primary" instead of "default" in the title of :colorscheme menu.

Other changes:
 - Provided more details on file handlers and viewers in sample vifmrc files.

Fixes:
 - Fixed picking trash directory when rooted trash is included in 'trashdir'
   and root is writable.  Regression in v0.14.2 (unfortunately, testing this
   automatically is problematic).
 - Fixed unlimited growth of directory histories when 'history' is set to its
   default value or not set at all in vifmrc.  Thanks to zoj613.
 - Fixed abort due to assertion on displaying a statusbar message with a
   newline when 'shortmess' includes "T".  Thanks to agguser.

See the ChangeLog file for the full list of changes and by whom they were
suggested or implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

07 May 2025
===========

Vifm v0.14.2
------------

Thanks for the bug reports.  This is a follow-up on v0.14.1 which revealed an
issue with `%r` in 'trashdir' when root file-system is read-only (like on macOS)
and also broke build with musl libc.

Two other fixes:

 - Trash directories specified via an absolute path and containing `%u` weren't
   created with `700` permissions.

 - Don't use `strverscmp()` of musl if it doesn't sort things correctly (`A`
   must be greater than `0`).  This avoids numerical sorting results looking
   different with musl.

Fixes:
 - Fixed build issue with musl due to use of non-standard LONG_LONG_MAX in
   v0.14.1.  Thanks to NRK.
 - Fixed user-specific trash directory (absolute path, `%u` and no `%r`)
   created on setting 'trashdir' not having reduced set of permissions.
 - Fixed treating a failure to create a trash directory on a read-only
   file-system in a Unix environment as a success.  Thanks to feekApp.
 - Fixed odd sorting with musl caused by its buggy strverscmp().  The ordering
   shouldn't depend on libc in use.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

02 May 2025
===========

Vifm v0.14.1
------------

Highlights:

 - Fixes

   Fixed a preview-related crash on Windows easily reproducible using binary
   files.

   Fixed a tree-related crash when using `{fileext}` or `{ext}` columns.

   Fixed 'trashdir' with "%r" not working on BSD-like systems.

   Fixed `vifm path/to/file` incorrectly running file handling in current
   working directory.

   Restored terminal access for commands that use `%i` macro (so `:!echo ... %i`
   can affect the terminal as before v0.12.1).  Use `%i &` for ignoring output
   while denying terminal accesses.

   Fixed occasional incorrect truncation of wide characters on drawing columns
   broken while introducing column-specific highlighting in 0.14-beta.

 - Documentation updates

   Clarified information on comments after :commands.  Provided some information
   on copy-on-write file copying.  Improved documentation on leaving compare and
   custom views.

Documentation:
 - Made documentation on which :commands can have comments a bit more verbose.
 - Documented extra information on file copying.  Patch by EA1A87.
 - Improved/extended/updated documentation on cancelling operations, compare
   and custom views.
 - Fixes of typos and groff syntax in documentation.  Patch by Kirill Rekhov.

Integration:
 - Updated .desktop-file to add localizations and be more up-to-date with
   modern recommendations.  Patch by Matěj Cepl (a.k.a. mcepl).

File operations:
 - Extended range of numbers Ctrl-A/Ctrl-X can deal with from [-2**31; 2**31)
   to [-2**63; 2**63).  Thanks to CaptainFantastic.

Only on Windows:
 - Fixed crashes in terminals that handle ANSI output on Windows when
   previewing binary or some complicated UTF-8 text files.  Thanks to Phil
   Runninger.

Fixes:
 - Made `%i` keep access to the terminal instead of acting like `%i &` . This
   restores the behavior prior to v0.12.1-beta (can be considered a regression
   as this breaks several use cases).  Thanks to an anonymous at Vifm Q2A site.
 - Fixed 'trashdir' with "%r" on BSD-like systems (those with getmntinfo()
   instead of getmntent() API).  The regression was apparently introduced in
   v0.9.1-beta.  Thanks to sublimal.
 - Fixed a crash on drawing a tree-view when {ext} or {fileext} follows {name},
   {iname}, {root} or {fileroot}.  Thanks to aw-cloud.
 - Fixed unintended (and incorrect) highlighting of search matches in {ext} and
   {fileext} columns.
 - Fixed setting 'timeoutlen' to zero resulting in high CPU use and ignoring
   user input.
 - Fixed trailing slash at the bottom of overwrite confirmation dialog
   displayed on merging directories.
 - Fixed :restart not resetting abbreviations.
 - Fixed `:restart full` ignoring `set tabscope=...` in vifmrc which is how
   :restart behaves.  Thanks to martinengelke (a.k.a. sHii).
 - Fixed tabulation breaking parsing of :set command.  Thanks to martinengelke
   (a.k.a., sHii).
 - Fixed :file[x]type commands being run in startup directory instead of view's
   directory when file was passed on command-line.  Thanks to ThePlaguebump.
 - Fixed false-positive on detecting ambiguity of commands with numbers in
   their names.  Thanks to CaptainFantastic.
 - Fixed Escape not cancelling waiting for the next input key.  Thanks to an
   anonymous at Vifm Q2A site.
 - Fixed a crash after `:winrun , normal e` followed by `q`.
 - Fixed ruler in menu mode not growing in size to accomodate its content.
   Thanks to CaptainFantastic.
 - Fixed a memory leak on formatting tab line when there is not enough space.
 - Fixed an unlikely memory leak on parsing of malformed 'viewcolumns'.
 - Fixed truncating wide characters on drawing columns broken on introducing
   column-specific highlighting in 0.14-beta.  Thanks to Snake52996.
 - Fixed :clone producing weird results on trying to increment numbers greater
   than `2**31 - 1`.  Thanks to CaptainFantastic.

See the ChangeLog file for the full list of changes and by whom they were
suggested or implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

08 February 2025
================

Vifm v0.14
----------

Thanks to everyone who tried out the beta.

Highlights:

 - Somewhat incompatible changes.

   This release contains a number of changes which are technically
   non-backwards compatible.  However, all of them should have very little
   negative impact (i.e., hard to notice the change without reading the
   changelog).

   At the same time, a bug, fixing which is likely to have an impact on user
   configuration, has been identified but not yet fixed to give a chance to
   update all affected `vifmrc` files.  If a bug is likely to be relied on by
   the configuration, a dialog with the explanation and instructions will
   appear.

 - Sorting and non-Latin characters.

   Until this release Vifm has always used byte sorting (effectively, sorting
   of UTF-8 byte sequences).  From now on a form of Unicode normalization is
   applied to strings when sorting views and completion results.  The change
   can be expanded to other cases in future releases.  The measured performance
   impact is negligible (several percent).

   Practically, this means that characters like `a` and `ä` are now grouped
   together regardless of the way in which diacritic is being encoded.  Some
   characters can still appear in weird non-alphabetic positions because full
   Unicode normalization results in losing case sensitivity and is therefore
   not applied.

 - Addressing some longtime woes.

   For one reason or another some inconvenient peculiarities have accumulated
   over the years.  Time has come to replace workarounds with something better:

    * global variables (`g:var`) replace the use of environmental variables for
      internal purposes, thus avoiding polluting environment of child processes
    * use of `:let` to invoke a builtin function discarding its result is
      superseded by a proper `:call` command
    * use of `execute 'normal! gl'` to run selection now has `:open` command as
      a better alternative
    * size of selection can now be queried via `selected()` (previous releases
      required `expand('%c') == expand('%f')` or an equivalent trick)
    * `%{expression}` macro in `'statusline'` can now have `}` embedded as
      `\}` (`\\` still means two slashes)
    * dialogs now recognize `Enter` and `Escape` keys as "yes" and "no" replies

 - More useful menus.

   `:copen` recalled last navigation menu for years, but that's not always
   enough.  Now up to 25 such menus are stored after their use and can be
   navigated to via `:chistory`/`:colder`/`:cnewer`.

   In addition, `:grep` or `:find` can be rerun on the same set of commands
   right from the menu which previously required leaving the menu just to get
   back to it.

   History of command-line in menus is now also managed and stored, making
   staying in menu mode for longer a more pleasant experience.

 - UI improvements.

   Navigation between views/tabs via new `:wingo` command with optional
   incremental completion thanks to new `'wildinc'` option (applicable to any
   other command or all of them at once).

   Ability to highlight a view column (`:highlight column:size ...`), specify
   how highlighting applies (`'hloptions'`), set a separator between miller
   columns in `set fillchars+=millersep:'|'`, shorten columns in the
   middle (`^` in `'viewcolumn'`).

   Also, displaying of CJK characters on Windows should have much fewer issues
   now.

 - Lua API.

   Slowly adding new functionality.  This batch comes with things like
   primitive file operations, ability to create custom views or menus and
   handling ranges of :commands.

 - Other.

   Search matches can be traversed via `Tab` and `Shift-Tab` while in the
   prompt (applies to navigation mode as well).

   An invalid expression in `:if` or `:elseif` no longer just skips that
   command, now all commands up to and including matching `:endif` are skipped
   to avoid executing half-random sequences of commands due to a mistake, which
   also results in better error messages.  Previously, `:elseif` was also
   evaluating its expression even some earlier branch was already taken.

   `:rename` now asks whether file move is intended instead of assuming a user
   mistake and refusing to proceed.

   Support MTP devices by bundled `vifm-media` script if simple-mtpfs is
   installed.  Also improve what devices are offered for mounting (e.g., don't
   offer a whole drive if it contains partitions).

   `v:version` to branch depending on release.

 - Fixes.

   Get preview graphics out of the way in more cases (like when opening menus).
   Terminals with more than 32768 color pairs should not cause visual defects
   or crashes anymore.

   Merging of directories was either not asking for confirmation or aborting
   after skipping a file.  Paths with some unreadable characters were not
   processed due to a regression.  Directories weren't counted in estimates of
   file operations.

   `&&` operator was always evaluating both branches instead of properly
   short-circuiting.  `%a` macro of `'statusline'` was displaying wrong values
   on non-Linux Unix-like systems.  `:compare` falsely claimed that files of
   identical size and with common prefix are identical.

Building:
 - Changed --with-gtk flag to --with-glib (old name is still available).  GTK
   was pulled in by mistake, only GIO/GLib was ever used...
 - Updated autotools scripts to their newer versions (thanks to phanium, a.k.a.
   phanen).
 - Fixed running tests with locales that use comma for decimal point (thanks to
   PRESFIL).
 - Fixed running tests with musl libc (thanks to Henrik Holst, a.k.a. hholst80).

:set command and options:
 - Changed default value of 'findprg' to avoid the use of syntax specific to
   GNU find.  The only difference is that now one can see "Permission denied"
   errors which weren't displayed before.  Sample vifmrc files contain
   detection of GNU find on startup (thanks to Jose Riha, a.k.a. jose1711).
 - Added "mchistory" value to 'vifminfo' and 'sessionoptions' option.  It
   manages storing of command-line history of menus.
 - Added 'hloptions' option to configure which view colums get affected by file
   highlighting (thanks to qsmodo).
 - Added "millersep:" value to 'fillchars' that allows customizing the border
   between miller columns (thanks to Shuo, a.k.a. shenqshuoh).
 - Added 'wildinc' option that defines which :commands should be completed as
   they are edited.
 - Added 'uioptions' option with possible "iodetails" value to display progress
   dialog by default (thanks to Ralf Schmitt).
 - Added middle view column alignment (specified by "^" in 'viewcolumns'
   option).  Part of the text is replaced with ellipsis to keep both start and
   end visible (patch by Vadim Curcă).
 - Made completion of an option with its current value work not only on
   `opt=<tab>`, but also on `opt='<tab>` and `opt="<tab>` (thanks to
   aleksejrs).

Command-line mode:
 - Added ":history mcmd" menu for displaying command-line history of menus.
 - Added :col[der] and :cnew[er] commands to menu mode to traverse history of
   navigation menus.
 - Added :chi[story] command that opens a menu of saved menus (available in all
   menus as well).
 - Added "column:{name}" form of argument to :highlight command to specify
   style of a separate column (thanks to Anton Gepting).
 - Added :wingo command to navigate to a view by substring matching against its
   title or path (thanks to iSeeU816 and Alexandre Viau).
 - Added :cal[l] command to run a function discarding its return value (thanks
   to anyone asking about simply running a function).
 - Added :o[pen] command to open current file, selection or range as if Enter
   was pressed (thanks to Safal Piya, a.k.a. mrsafalpiya).
 - Added a way to insert "}" inside of %{expr} macro of 'statusline' (thanks to
   vuenn).
 - Made :goto preserve custom and tree views (thanks to Svetlozar Iliev, a.k.a.
   asmodeus812).
 - Made :compare treat non-regular files (pipes, sockets, etc.) as empty.
 - Allowed moving files via :rename (requires an interactive confirmation)
   (thanks to aleksejrs).
 - Improved error message on trying to :unlet a builtin variable.
 - Expand environment variables in the arguments of :mark command (thanks to an
   anonymous at Vifm Q2A site).
 - Improved detection and reporting of invalid mark name by :mark command.
 - Made Tab and Shift-Tab in interactive search prompts (including when
   navigating) move cursor to next/previous search match (thanks to David
   Sierra DiazGranados, a.k.a. davidsierradz).

Macros:
 - Allow and skip !/!! prefix of custom external :commands for more macros (%S,
   %q, %i, %m, %M, %s, %v, %u, %U, %Iu, %IU).
 - Adjusted heuristic for determining previewer type to allow use of %px and
   %py with %pd without any implications (thanks to iambumblehead).

Core:
 - Changed initialization to not create a copy of rendered man page at
   $VIFM/vifm-help.txt, :help now opens the original file (thanks to intelfx).
 - Changed handling of Ctrl-Z to not suspend the application if a corresponding
   user mapping exists (patch 高浩亮, a.k.a. haolian9).
 - Perform sorting of completion items after doing Unicode normalization.
 - Perform sorting of file names after doing Unicode normalization (thanks to
   hacksenwerk).

Normal and visual modes:
 - Added [S and ]S shortcuts as wrapping versions of [s and ]s (thanks to
   aksr).

Integration:
 - Made vifm-media not offer partitioned drives as they aren't mountable as a
   whole.
 - Extended vifm-media script to support MTP devices if simple-mtpfs tool is
   installed (thanks to FlyCat, a.k.a. yanwh0311, and Alexandre Viau).
 - Fixed vifm-media script not listing external drives with udevil and udisks.
 - Fixed vifm-media script not listing removable drives with udisks marked as
   non-removable by udisks.

AppImage:
 - Updated ncurses in AppImage to 6.5.
 - Don't overwrite $TERMINFO in AppImage, set/append to $TERMINFO_DIRS instead
   (thanks to anonymous at Vifm Q2A site).
 - Fixed /usr/share/terminfo not being consulted when running from an AppImage
   (thanks to anonymous at Vifm Q2A site).

Menus and dialogs:
 - Added command-line history to menu mode.
 - Added :gr[ep] and :fin[d] commands to menu mode.  They allow (re)running the
   commands on the same set of files without leaving the mode.
 - Added inode number to File Info dialog.
 - Added handling of Enter/Escape keys to prompts and error dialogs (thanks to
   laur89, Alexandre Viau and multiple other users who asked about this).
 - List register's content listed in normal rather then reversed order in
   :registers/:display menu.
 - Display number of color pairs in use in :version/:vifm menu.
 - Constrained background error dialogs to appear only in normal mode when not
   much is going on.

Macros:
 - Changed %N macro to not be mutually exclusive with most of other macros (the
   limitation wasn't documented and didn't make much sense) (thanks to James
   Dietrich).

Scripting:
 - Added a statusbar message and a dialog to warn about an upcoming fix for
   strings in conditional expressions (e.g., `if $VAR` checks for `$VAR` being
   non empty instead of converting it to an integer) (thanks to
   justpretending2).
 - Changed behaviour on failure to evaluate an expression of :if or :elseif.
   Previously this resulted in trying to execute any commands until and
   including :endif (all branches taken).  Now everything up to :endif will not
   be executed (no branches taken) (thanks to Ed Pavlov).
 - Changed filetype() to accept path in its first parameter.  This means that
   passing it something like "15abc" will no longer be interpreted as 15
   (thanks to MikeLemon).
 - Added escape() builtin function to escape specific characters in strings
   (thanks to The Cyberduck).
 - Added selected() builtin function which returns number of currently selected
   files.
 - Added global variables (with "g:" prefix) to avoid using environment
   variables in their place as a workaround.
 - Added v:version builtin variable that exposes version as an integer which
   can be meaningfully compared (thanks to an anonymous at Vifm Q2A site).

Performance:
 - Slightly improved performance of comparing files by content.
 - Fixed performance degradation after preview consumes lots of color pairs.

Documentation:
 - Clarified documentation on column literals and escaping (thanks to
   chelovechishko).
 - Made documentation of 'vifminfo' more readable.
 - Rewrote "Menus and dialogs" section.
 - Document how the use of different preview macros affects classification of a
   previewer (thanks to iambumblehead).
 - Slightly expanded documentation on %N macro (thanks to James Dietrich).
 - Somewhat improved documentation on functional keys.
 - Fixed documentation on yy, Y, dd and DD not mentioning how "s" flag of
   'cpoptions' affects their behaviour (thanks to James Dietrich).
 - Fixed outdated documentation on the behaviour of n/N when 'hlsearch' is
   enabled since the introduction of highlighting of search matches (thanks to
   James Dietrich).

TUI (Text User Interface):
 - When processing multiple files in background, show current position in the
   list on the job bar.
 - Shorten home directory in paths shown on the job bar.
 - Provide numerical value of a color as a description of a completion item for
   it.
 - Don't attempt clearing graphics when menu-like mode is active.  The graphics
   should have been hidden on entering the mode.
 - Allowed wild menu popup to take up up to 40% of the screen.

Only on Windows:
 - Upgraded to PDCurses 3.9 (was 3.8).  Combined with some other changes this
   improves the situation with handling of CJK characters (thanks to
   zzx41375004, vodbyte, Jeremy Yuan and others).
 - Fixed `data/vifmrc` next to vifm.exe being used as global vifmrc file
   (thanks to midrare).
 - Fixed incorrectly determining whether a directory is writable (primarily C:\
   could be reported as non-writable) (thanks to theorlangur and bitraid).
 - Fixed system() and term() not taking 'shell'/'shellcmdflag' into account
   (thanks to spence91).

Color schemes:
 - Added WildBox highlight group.  It can be used to set background of
   completion window.

Noteworthy fixes:
 - Fixed graphics of view mode not being hidden on activating menu, more or
   file info modes.
 - Fixed graphics not being cleared on switching to single-pane view (thanks to
   ret2src).
 - Fixed a historical omission of Ctrl-G not being available in some prompts:
   file rename on conflict; owner, group and symbolic link target change
   (thanks to Branislav Gerazov).
 - Fixed display issues or a crash when using a terminal with more than 32768
   color pairs (thanks to iboggs and itshog).
 - Fixed %a 'statusline' macro producing wrong values on non-Linux Unix-like
   systems (thanks to voh9eepah).
 - Fixed merging directories on copying not asking for overwrite confirmations
   (thanks to aleksejrs).
 - Fixed skipping of file move during merging aborting the whole operation
   (thanks to aleksejrs).
 - Fixed `:[un]select !<text/html>` treating "<text/html>" as an external
   command.
 - Fixed environment variables not being expanded on checking that a
   :file[x]type or :fileviewer command exists in $PATH (thanks to Ben Elan).
 - Fixed weird sorting of filenames with non-Latin characters when
   'sortnumbers' option is set and strverscmp() is not provided by the system
   (like on Windows).
 - Fixed :compare reporting identical files as changed when there were more
   than a couple of files with identical size and 4096-byte prefix.  A
   regression in 0.13-beta (thanks to Alexandr Keyp, a.k.a. IAmKapuze).
 - Fixed :compare hanging on trying to compare non-regular files like pipes by
   contents.
 - Fixed :substitute, :tr, gu* and gU* detecting a non-existent target name
   conflict when rename in a custom view would produce an identically named
   files in different directories (thanks to aleksejrs).
 - Fixed :restart leaving histories disabled unless 'history' is set to a
   non-default value in vifmrc (thanks to James Dietrich).
 - Fixed processing of file names and paths that undergo escaping in the UI,
   like inability to externally rename them (regression in 0.12.1 beta) (thanks
   to jc-SpaceXp).
 - Fixed rules for handling of selection by :file[x]type not taking
   %"c/%"C/%"f/%"F macros into account (relevant mostly to Windows) (thanks to
   %smoothdad).
 - Fixed :elseif evaluating its expression even if an earlier conditional
   branch was already taken.
 - Fixed loading a session with global tabs when 'tabscope' is "pane" resulting
   in global tabs being invisible.
 - Fixed Ctrl-A and Ctrl-E in command-line mode not stopping completion unlike
   other similar keys.
 - Fixed directories not being accounted for in estimates (thanks to
   justpretending2).
 - Fixed Escape being handled as Ctrl-C in prompts which suppresses future
   errors.
 - Fixed !! not affecting commands that include %s or %v macro (thanks to James
   Dietrich).
 - Fixed a crash after a memory corruption when running an external command via
   expansion of an environment variable when 'fastrun' is set (e.g.,
   `!$EDITOR`) (thanks to Quaddroo).
 - Fixed abort on instance sending something over IPC to itself (thanks to
   Marcin Kurczewski, a.k.a. rr-).
 - Fixed `&&` operator which was acting as binary `&` (in terms of evaluation,
   the result was properly boolean) (thanks to justpretending2).

Other changes:
 - Configure 'vifminfo' in sample vifmrc files to store most of the things in
   vifminfo by default (add missing histories and tabs) (thanks to Christoph
   Schmidpeter).
 - Commented out one of MC-like shortcuts in sample vifmrc files, Ctrl-U, to
   avoid confusing Vim users with default configuration (thanks to midrare).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

19 January 2025
===============

Vifm v0.14 beta
---------------

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another release candidate can be released.

Highlights:

 - Somewhat incompatible changes.

   This release contains a number of changes which are technically
   non-backwards compatible.  However, all of them should have very little
   negative impact (i.e., hard to notice the change without reading the
   changelog).

   At the same time, a bug, fixing which is likely to have an impact on user
   configuration, has been identified but not yet fixed to give a chance to
   update all affected `vifmrc` files.  If a bug is likely to be relied on by
   the configuration, a dialog with the explanation and instructions will
   appear.

 - Sorting and non-Latin characters.

   Until this release Vifm has always used byte sorting (effectively, sorting
   of UTF-8 byte sequences).  From now on a form of Unicode normalization is
   applied to strings when sorting views and completion results.  The change
   can be expanded to other cases in future releases.  The measured performance
   impact is negligible (several percent).

   Practically, this means that characters like `a` and `ä` are now grouped
   together regardless of the way in which diacritic is being encoded.  Some
   characters can still appear in weird non-alphabetic positions because full
   Unicode normalization results in losing case sensitivity and is therefore
   not applied.

 - Addressing some longtime woes.

   For one reason or another some inconvenient peculiarities have accumulated
   over the years.  Time has come to replace workarounds with something better:

    * global variables (`g:var`) replace the use of environmental variables for
      internal purposes, thus avoiding polluting environment of child processes
    * use of `:let` to invoke a builtin function discarding its result is
      superseded by a proper `:call` command
    * use of `execute 'normal! gl'` to run selection now has `:open` command as
      a better alternative
    * size of selection can now be queried via `selected()` (previous releases
      required `expand('%c') == expand('%f')` or an equivalent trick)
    * `%{expression}` macro in `'statusline'` can now have `}` embedded as
      `\}` (`\\` still means two slashes)
    * dialogs now recognize `Enter` and `Escape` keys as "yes" and "no" replies

 - More useful menus.

   `:copen` recalled last navigation menu for years, but that's not always
   enough.  Now up to 25 such menus are stored after their use and can be
   navigated to via `:chistory`/`:colder`/`:cnewer`.

   In addition, `:grep` or `:find` can be rerun on the same set of commands
   right from the menu which previously required leaving the menu just to get
   back to it.

   History of command-line in menus is now also managed and stored, making
   staying in menu mode for longer a more pleasant experience.

 - UI improvements.

   Navigation between views/tabs via new `:wingo` command with optional
   incremental completion thanks to new `'wildinc'` option (applicable to any
   other command or all of them at once).

   Ability to highlight a view column (`:highlight column:size ...`), specify
   how highlighting applies (`'hloptions'`), set a separator between miller
   columns in `set fillchars+=millersep:'|'`, shorten columns in the
   middle (`^` in `'viewcolumn'`).

   Also, displaying of CJK characters on Windows should have much fewer issues
   now.

 - Lua API.

   Slowly adding new functionality.  This batch comes with things like
   primitive file operations, ability to create custom views or menus and
   handling ranges of :commands.

 - Other.

   Search matches can be traversed via `Tab` and `Shift-Tab` while in the
   prompt (applies to navigation mode as well).

   An invalid expression in `:if` or `:elseif` no longer just skips that
   command, now all commands up to and including matching `:endif` are skipped
   to avoid executing half-random sequences of commands due to a mistake, which
   also results in better error messages.  Previously, `:elseif` was also
   evaluating its expression even some earlier branch was already taken.

   `:rename` now asks whether file move is intended instead of assuming a user
   mistake and refusing to proceed.

   Support MTP devices by bundled `vifm-media` script if simple-mtpfs is
   installed.  Also improve what devices are offered for mounting (e.g., don't
   offer a whole drive if it contains partitions).

   `v:version` to branch depending on release.

 - Fixes.

   Get preview graphics out of the way in more cases (like when opening menus).
   Terminals with more than 32768 color pairs should not cause visual defects
   or crashes anymore.

   Merging of directories was either not asking for confirmation or aborting
   after skipping a file.  Paths with some unreadable characters were not
   processed due to a regression.  Directories weren't counted in estimates of
   file operations.

   `&&` operator was always evaluating both branches instead of properly
   short-circuiting.  `%a` macro of `'statusline'` was displaying wrong values
   on non-Linux Unix-like systems.  `:compare` falsely claimed that files of
   identical size and with common prefix are identical.

Building:
 - Changed --with-gtk flag to --with-glib (old name is still available).  GTK
   was pulled in by mistake, only GIO/GLib was ever used...
 - Updated autotools scripts to their newer versions (thanks to phanium, a.k.a.
   phanen).
 - Fixed running tests with locales that use comma for decimal point (thanks to
   PRESFIL).
 - Fixed running tests with musl libc (thanks to Henrik Holst, a.k.a. hholst80).

:set command and options:
 - Changed default value of 'findprg' to avoid the use of syntax specific to
   GNU find.  The only difference is that now one can see "Permission denied"
   errors which weren't displayed before.  Sample vifmrc files contain
   detection of GNU find on startup (thanks to Jose Riha, a.k.a. jose1711).
 - Added "mchistory" value to 'vifminfo' and 'sessionoptions' option.  It
   manages storing of command-line history of menus.
 - Added 'hloptions' option to configure which view colums get affected by file
   highlighting (thanks to qsmodo).
 - Added "millersep:" value to 'fillchars' that allows customizing the border
   between miller columns (thanks to Shuo, a.k.a. shenqshuoh).
 - Added 'wildinc' option that defines which :commands should be completed as
   they are edited.
 - Added 'uioptions' option with possible "iodetails" value to display progress
   dialog by default (thanks to Ralf Schmitt).
 - Added middle view column alignment (specified by "^" in 'viewcolumns'
   option).  Part of the text is replaced with ellipsis to keep both start and
   end visible (patch by Vadim Curcă).
 - Made completion of an option with its current value work not only on
   `opt=<tab>`, but also on `opt='<tab>` and `opt="<tab>` (thanks to
   aleksejrs).

Command-line mode:
 - Added ":history mcmd" menu for displaying command-line history of menus.
 - Added :col[der] and :cnew[er] commands to menu mode to traverse history of
   navigation menus.
 - Added :chi[story] command that opens a menu of saved menus (available in all
   menus as well).
 - Added "column:{name}" form of argument to :highlight command to specify
   style of a separate column (thanks to Anton Gepting).
 - Added :wingo command to navigate to a view by substring matching against its
   title or path (thanks to iSeeU816 and Alexandre Viau).
 - Added :cal[l] command to run a function discarding its return value (thanks
   to anyone asking about simply running a function).
 - Added :o[pen] command to open current file, selection or range as if Enter
   was pressed (thanks to Safal Piya, a.k.a. mrsafalpiya).
 - Added a way to insert "}" inside of %{expr} macro of 'statusline' (thanks to
   vuenn).
 - Made :goto preserve custom and tree views (thanks to Svetlozar Iliev, a.k.a.
   asmodeus812).
 - Made :compare treat non-regular files (pipes, sockets, etc.) as empty.
 - Allowed moving files via :rename (requires an interactive confirmation)
   (thanks to aleksejrs).
 - Improved error message on trying to :unlet a builtin variable.
 - Expand environment variables in the arguments of :mark command (thanks to an
   anonymous at Vifm Q2A site).
 - Improved detection and reporting of invalid marks by :mark command.
 - Made Tab and Shift-Tab in interactive search prompts (including when
   navigating) move cursor to next/previous search match (thanks to David
   Sierra DiazGranados, a.k.a. davidsierradz).

Macros:
 - Allow and skip !/!! prefix of custom external :commands for more macros (%S,
   %q, %i, %m, %M, %s, %v, %u, %U, %Iu, %IU).
 - Adjusted heuristic for determining previewer type to allow use of %px and
   %py with %pd without any implications (thanks to iambumblehead).

Core:
 - Changed initialization to not create a copy of rendered man page at
   $VIFM/vifm-help.txt, :help now opens the original file (thanks to intelfx).
 - Changed handling of Ctrl-Z to not suspend the application if a corresponding
   user mapping exists (patch 高浩亮, a.k.a. haolian9).
 - Perform sorting of completion items after doing Unicode normalization.
 - Perform sorting of file names after doing Unicode normalization (thanks to
   hacksenwerk).

Normal and visual modes:
 - Added [S and ]S shortcuts as wrapping versions of [s and ]s (thanks to
   aksr).

Integration:
 - Made vifm-media not offer partitioned drives as they aren't mountable as a
   whole.
 - Extended vifm-media script to support MTP devices if simple-mtpfs tool is
   installed (thanks to FlyCat, a.k.a. yanwh0311, and Alexandre Viau).
 - Fixed vifm-media script not listing external drives with udevil and udisks.
 - Fixed vifm-media script not listing removable drives with udisks marked as
   non-removable by udisks.

AppImage:
 - Updated ncurses in AppImage to 6.5.
 - Don't overwrite $TERMINFO in AppImage, set/append to $TERMINFO_DIRS instead
   (thanks to anonymous at Vifm Q2A site).
 - Fixed /usr/share/terminfo not being consulted when running from an AppImage
   (thanks to anonymous at Vifm Q2A site).

Menus and dialogs:
 - Added command-line history to menu mode.
 - Added :gr[ep] and :fin[d] commands to menu mode.  They allow (re)running the
   commands on the same set of files without leaving the mode.
 - Added inode number to File Info dialog.
 - Added handling of Enter/Escape keys to prompts and error dialogs (thanks to
   laur89, Alexandre Viau and multiple other users who asked about this).
 - List register's content listed in normal rather then reversed order in
   :registers/:display menu.
 - Display number of color pairs in use in :version/:vifm menu.
 - Constrained background error dialogs to appear only in normal mode when not
   much is going on.

Macros:
 - Changed %N macro to not be mutually exclusive with most of other macros (the
   limitation wasn't documented and didn't make much sense) (thanks to James
   Dietrich).

Scripting:
 - Added a statusbar message and a dialog to warn about an upcoming fix for
   strings in conditional expressions (e.g., `if $VAR` checks for `$VAR` being
   non empty instead of converting it to an integer) (thanks to
   justpretending2).
 - Changed behaviour on failure to evaluate an expression of :if or :elseif.
   Previously this resulted in trying to execute any commands until and
   including :endif (all branches taken).  Now everything up to :endif will not
   be executed (no branches taken) (thanks to Ed Pavlov).
 - Changed filetype() to accept path in its first parameter.  This means that
   passing it something like "15abc" will no longer be interpreted as 15
   (thanks to MikeLemon).
 - Added escape() builtin function to escape specific characters in strings
   (thanks to The Cyberduck).
 - Added selected() builtin function which returns number of currently selected
   files.
 - Added global variables (with "g:" prefix) to avoid using environment
   variables in their place as a workaround.
 - Added v:version builtin variable that exposes version as an integer which
   can be meaningfully compared (thanks to an anonymous at Vifm Q2A site).

Performance:
 - Slightly improved performance of comparing files by content.
 - Fixed performance degradation after preview consumes lots of color pairs.

Documentation:
 - Clarified documentation on column literals and escaping (thanks to
   chelovechishko).
 - Made documentation of 'vifminfo' more readable.
 - Rewrote "Menus and dialogs" section.
 - Document how the use of different preview macros affects classification of a
   previewer (thanks to iambumblehead).
 - Slightly expanded documentation on %N macro (thanks to James Dietrich).
 - Somewhat improved documentation on functional keys.
 - Fixed documentation on yy, Y, dd and DD not mentioning how "s" flag of
   'cpoptions' affects their behaviour (thanks to James Dietrich).
 - Fixed outdated documentation on the behaviour of n/N when 'hlsearch' is
   enabled since the introduction of highlighting of search matches (thanks to
   James Dietrich).

TUI (Text User Interface):
 - When processing multiple files in background, show current position in the
   list on the job bar.
 - Shorten home directory in paths shown on the job bar.
 - Provide numerical value of a color as a description of a completion item for
   it.
 - Don't attempt clearing graphics when menu-like mode is active.  The graphics
   should have been hidden on entering the mode.
 - Allowed wild menu popup to take up up to 40% of the screen.

Only on Windows:
 - Upgraded to PDCurses 3.9 (was 3.8).  Combined with some other changes this
   improves the situation with handling of CJK characters (thanks to
   zzx41375004, vodbyte, Jeremy Yuan and others).
 - Fixed `data/vifmrc` next to vifm.exe being used as global vifmrc file
   (thanks to midrare).
 - Fixed incorrectly determining whether a directory is writable (primarily C:\
   could be reported as non-writable) (thanks to theorlangur and bitraid).
 - Fixed system() and term() not taking 'shell'/'shellcmdflag' into account
   (thanks to spence91).

Color schemes:
 - Added WildBox highlight group.  It can be used to set background of
   completion window.

Noteworthy fixes:
 - Fixed graphics of view mode not being hidden on activating menu, more or
   file info modes.
 - Fixed graphics not being cleared on switching to single-pane view (thanks to
   ret2src).
 - Fixed a historical omission of Ctrl-G not being available in some prompts:
   file rename on conflict; owner, group and symbolic link target change
   (thanks to Branislav Gerazov).
 - Fixed display issues or a crash when using a terminal with more than 32768
   color pairs (thanks to iboggs and itshog).
 - Fixed %a 'statusline' macro producing wrong values on non-Linux Unix-like
   systems (thanks to voh9eepah).
 - Fixed merging directories on copying not asking for overwrite confirmations
   (thanks to aleksejrs).
 - Fixed skipping of file move during merging aborting the whole operation
   (thanks to aleksejrs).
 - Fixed `:[un]select !<text/html>` treating "<text/html>" as an external
   command.
 - Fixed environment variables not being expanded on checking that a
   :file[x]type or :fileviewer command exists (thanks to Ben Elan).
 - Fixed weird sorting of filenames with non-Latin characters when
   'sortnumbers' option is set and strverscmp() is not provided by the system
   (like on Windows).
 - Fixed :compare reporting identical files as changed when there were more
   than a couple of files with identical size and 4096-byte prefix.  A
   regression in 0.13-beta (thanks to Alexandr Keyp, a.k.a. IAmKapuze).
 - Fixed :compare hanging on trying to compare non-regular files like pipes by
   contents.
 - Fixed :substitute, :tr, gu* and gU* detecting a non-existent target name
   conflict when rename in a custom view would produce an identically named
   files in different directories (thanks to aleksejrs).
 - Fixed :restart leaving histories disabled unless 'history' is set to a
   non-default value in vifmrc (thanks to James Dietrich).
 - Fixed processing of file names and paths that undergo escaping in the UI,
   like inability to externally rename them (regression in 0.12.1 beta) (thanks
   to jc-SpaceXp).
 - Fixed rules for handling of selection by :file[x]type not taking
   %"c/%"C/%"f/%"F macros into account (relevant mostly to Windows) (thanks to
   %smoothdad).
 - Fixed :elseif evaluating its expression even if an earlier conditional
   branch was already taken.
 - Fixed loading a session with global tabs when 'tabscope' is "pane" resulting
   in global tabs being invisible.
 - Fixed Ctrl-A and Ctrl-E in command-line mode not stopping completion or
   history search unlike other similar keys.
 - Fixed directories not being accounted for in estimates (thanks to
   justpretending2).
 - Fixed Escape being handled as Ctrl-C in prompts which suppresses future
   errors.
 - Fixed !! not affecting commands that include %s or %v macro (thanks to James
   Dietrich).
 - Fixed a crash after a memory corruption when running an external command via
   expansion of an environment variable when 'fastrun' is set (e.g.,
   `!$EDITOR`) (thanks to Quaddroo).
 - Fixed abort on instance sending something over IPC to itself (thanks to
   Marcin Kurczewski, a.k.a. rr-).
 - Fixed `&&` operator which was acting as binary `&` (in terms of evaluation,
   the result was properly boolean) (thanks to justpretending2).

Other changes:
 - Configure 'vifminfo' in sample vifmrc files to store most of the things in
   vifminfo by default (add missing histories and tabs) (thanks to Christoph
   Schmidpeter).
 - Commented out one of MC-like shortcuts in sample vifmrc files, Ctrl-U, to
   avoid confusing Vim users with default configuration (thanks to midrare).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

04 April 2023
=============

Vifm v0.13
----------

Thanks to everyone who tried out the beta.

Highlights:

 - Faster file-system navigation with a new searching/filtering submode.

   Hitting `<c-y>` after `/` or `=` allows finding and opening consecutive path
   components without leaving command-line mode.  In this mode keys like
   `<c-o>`/`<c-n>`/`<c-p>`/`<left>`/`<home>`/etc. help to refine cursor
   position or go to parent directory if necessary.

 - More interactive :compare.

   You can now see stats about file comparison on the status bar and have an
   option to easily re-run the comparison while toggling visibility of some of
   the groups.

   Also, default file alignment is more natural now.  `do` and `dp` handle
   selection.  You can force ignoring or respecting case in paths.  Performance
   and memory consumption have been improved in various cases.

 - Mouse support and TUI improvements.

   Once mouse support is enabled, you should be able to perform simple browsing
   with just your mouse for those cases when it's more convenient.

   Conflict dialog now always presents basic file metadata for comparison.
   Detailed progress dialog has ETA.  Ls-like view can now have a fixed number
   of columns.

 - Other.

   Formatting of tabs and entry selection in Lua.  Changing register's content
   via an editor.  Explicitly prompting user for input via input() function.

 - Fixes.

   v0.12.1 was supposed to improve escaping on Windows, but it simultaneously
   made one old bug more prominent, effectively making things much worse in
   some cases.  This release remedies that.

   %N macro has been adjusted to fix integration with image preview of Kitty
   v0.27+.

   Lots of fixes related to search and various combinations of 'hlsearch',
   'incsearch' in different modes.

Normal and visual modes:
 - made Ctrl-E/Ctrl-Y scroll transposed ls-like view horizontally by one column;
 - extended do and dp keys to process selection (thanks to Mark S., a.k.a.
   Markuzcha).

:set command and options:
 - added 'mouse' option to control when mouse input is handled (not handled by
   default);
 - added 'navoptions' option to allow tweaking navigation mode a bit (thanks to
   filterfalse);
 - added 'tabline' option to specify format of the tab line;
 - added "columncount:" value to 'lsoptions' to always display fixed number of
   columns (thanks to Aleksandr Vysotskiy, a.k.a. loki1368);
 - added "rpreview:files" to 'milleroptions' (thanks to aksr).

Command-line mode:
 - changed error reporting for some of the :commands such that now their
   failures cause a dialog to appear on sourcing, previously those errors were
   printed only to status bar;
 - changed implementation of `:compare grouppaths` to juxtapose only files with
   identical relative paths (patch by Alexandr Keyp, a.k.a. IAmKapuze);
 - added "withicase" and "withrcase" to :compare that force ignoring and
   respecting case respectively on comparing file names and paths (thanks to
   Jose Riha, a.k.a. jose1711);
 - added show* arguments to :compare command to control/switch which sets of
   files are displayed (toggling is done by :compare!) (patch by Alexandr Keyp,
   a.k.a. IAmKapuze);
 - added :amap, :anoremap and :aunmap commands to configure mappings in
   navigation mode (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added :regedit command for external editing of register contents (thanks to
   Daniel J. Perry, a.k.a. BioBox; patch by Rostislav Tolushkin, a.k.a.
   nullptr-deref);
 - added Ctrl-Y key to command-line mode.  It activates fast navigation that
   allows entering deep paths by a series of searches for individual path
   components (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added Ctrl-J key to command-line navigation.  It leaves the mode without
   opening a file/directory (thanks to filterfalse);
 - added Ctrl-O key to command-line navigation that goes to parent directory;
 - added Ctrl-N/P keys to command-line navigation to move view cursor up/down
   (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added Arrows/Home/End/Page Up/Page Down keys to command-line navigation to
   move view cursor (thanks to Henrik Holst, a.k.a. hholst80, and dmocek).

Core:
 - added printing stats while in :compare mode (patch by Alexandr Keyp, a.k.a.
   IAmKapuze);
 - don't move cursor on search failure during search with a count (patch by
   filterfalse);
 - specified a few more cases when to show a search message with search
   highlighting turned on: if found a match, if wrapping is turned on, and in
   visual mode (patch by filterfalse);
 - a regular search logic showing messages is applied to n/N (patch by
   filterfalse).

File operations:
 - made aborting deletion abort the operation on the rest of files when
   deleting multiple files.

Macros:
 - changed %N macro to also not start a process group for a command (thanks to
   Oskar Grunning, a.k.a. sQVe).

Scripting:
 - added input() builtin function to prompt user for input (thanks to Artur F.,
   a.k.a. arturfabriciohahaedgy);
 - added filereadable() builtin function mainly as a way to check file's
   presence.

Menus and dialogs:
 - added r key to :jobs menu, which reloads the list of jobs (thanks to Sylwia
   Ptasinska, a.k.a. SylEleuth);
 - made feedback after pressing dd in :jobs more prominent (thanks to Sylwia
   Ptasinska, a.k.a. SylEleuth).

TUI (Text User Interface):
 - added builtin handling of mouse events (thanks to ranousse, Sergei Shilovsky
   and user451421541757324; patch by 高浩亮, a.k.a. haolian9);
 - added ETA to detailed progress dialog (thanks to Jose Riha, a.k.a.
   jose1711);
 - apply file highlighting to "ext" and "fileext" view columns (thanks to
   aleksejrs);
 - merged file conflict comparison dialog into the main conflict dialog (thanks
   to aleksejrs);
 - made file conflict more concise (thanks to aleksejrs).

Color schemes:
 - added additional User10..User20 highlight groups and corresponding %10*-%20*
   macros (thanks to Sylwia Ptasinska, a.k.a. SylEleuth);
 - update Default-256 to differentiate between more file types (thanks to
   aleksejrs).

Invocation:
 - added `--plugins-dir` command-line option which allows specifying additional
   places to look for plugins (thanks to 高浩亮, a.k.a. haolian9).

Performance:
 - reduced amount of memory consumed by `:compare groupids`;
 - made `:compare bycontents` not bother reading content of files which have
   unique size.

Documentation:
 - provide basic instructions in the documentation on how mappings work (thanks
   to dmocek);
 - fixed description of %i macro in the documentation to mention that it runs
   command in background.

Packaging:
 - changed use of `$(filter-out)` in src/Makefile.am to `$(var:from=to)`
   substitution to get rid of a warning on configuration;
 - changed how pthread support is detected by configure script to handle more
   cases (thanks to Markus Elfring, a.k.a. elfring);
 - changed configure script to fail if neither perl nor vim is available
   instead of failing to generate tags for Vim-style documentation (thanks to
   Sergei Trofimovich, a.k.a. trofi);
 - install icons also to ${prefix}/share/icons.  It's not clear that using
   ${prefix}/share/pixmaps will always be handled properly (thanks to Szilárd
   Andai).

Integration:
 - made instances running inside AppImage consider contents of `/etc/vifm`
   (thanks to aleksejrs);
 - fixed $VIFM_APPDIR_ROOT being ignored by :help command, which made it not
   work properly from AppImage (thanks to infinitewhileloop).

Only on Windows:
 - fixed escaping of file paths when using 'vicmd' or 'vixcmd' to open a file
   on Windows (thanks to Phil Runninger).

Noteworthy fixes:
 - fixed abort due to assertion failure on using zx normal mode key after
   leaving tree in some cases (thanks to Mark S., a.k.a. Markuzcha);
 - fixed asynchronous previewing of symbolic links, which required manual
   redraw (thanks to Alexandre Viau);
 - fixed FUSE mounting assuming `2>` redirection is supported by the shell,
   which isn't true at least for csh and tcsh (thanks to Evgeniy, a.k.a.
   iron-udjin);
 - fixed dialogs not handling non-latin characters well;
 - fixed :locate never escaping its arguments (should be done unless the first
   one starts with a dash).  This is a regression in 0.7.6;
 - fixed n/N not moving the cursor without prior search (patch by filterfalse);
 - fixed resetting 'hlsearch' during incremental search in visual mode (patch
   by filterfalse);
 - fixed dropping selected files on empty input during incremental search in
   visual mode when 'hlsearch' is set (patch by filterfalse);
 - fixed segfault on trying to use a pipe from Lua after its parent VifmJob
   object was garbage-collected (thanks to PRESFIL);
 - fixed 'previewprg' not being respected on switching to view mode (regression
   in 0.12-beta) (thanks to Sitaram Chamarty).

See change log for the full list of changes and by whom they were suggested or
implemented.

17 March 2023
=============

Vifm v0.13 beta
---------------

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Highlights:

 - Faster file-system navigation with a new searching/filtering submode.

   Hitting `<c-y>` after `/` or `=` allows finding and opening consecutive path
   components without leaving command-line mode.  In this mode keys like
   `<c-o>`/`<c-n>`/`<c-p>`/`<left>`/`<home>`/etc. help to refine cursor
   position or go to parent directory if necessary.

 - More interactive :compare.

   You can now see stats about file comparison on the status bar and have an
   option to easily re-run the comparison while toggling visibility of some of
   the groups.

   Also, default file alignment is more natural now.  `do` and `dp` handle
   selection.  You can force ignoring or respecting case in paths.  Performance
   and memory consumption have been improved in various cases.

 - Mouse support and TUI improvements.

   Once mouse support is enabled, you should be able to perform simple browsing
   with just your mouse for those cases when it's more convenient.

   Conflict dialog now always presents basic file metadata for comparison.
   Detailed progress dialog has ETA.  Ls-like view can now have a fixed number
   of columns.

 - Other.

   Formatting of tabs in Lua.  Changing register's content via an editor.
   Explicitly prompting user for input via input() function.

 - Fixes.

   v0.12.1 was supposed to improve escaping on Windows, but it simultaneously
   made one old bug more prominent, effectively making things much worse in
   some cases.  This release remedies that.

   %N macro has been adjusted to fix integration with image preview of Kitty
   v0.27+.

   Lots of fixes related to search and various combinations of 'hlsearch',
   'incsearch' in different modes.

Normal and visual modes:
 - made Ctrl-E/Ctrl-Y scroll transposed ls-like view horizontally by one column;
 - extended do and dp keys to process selection (thanks to Mark S., a.k.a.
   Markuzcha).

:set command and options:
 - added 'mouse' option to control when mouse input is handled (not handled by
   default);
 - added 'navoptions' option to allow tweaking navigation mode a bit (thanks to
   filterfalse);
 - added 'tabline' option to specify format of the tab line;
 - added "columncount:" value to 'lsoptions' to always display fixed number of
   columns (thanks to Aleksandr Vysotskiy, a.k.a. loki1368);
 - added "rpreview:files" to 'milleroptions' (thanks to aksr).

Command-line mode:
 - changed error reporting for some of the :commands such that now their
   failures cause a dialog to appear on sourcing, previously those errors were
   printed only to status bar;
 - changed implementation of `:compare grouppaths` to juxtapose only files with
   identical relative paths (patch by Alexandr Keyp, a.k.a. IAmKapuze);
 - added "withicase" and "withrcase" to :compare that force ignoring and
   respecting case respectively on comparing file names and paths (thanks to
   Jose Riha, a.k.a. jose1711);
 - added show* arguments to :compare command to control/switch which sets of
   files are displayed (toggling is done by :compare!) (patch by Alexandr Keyp,
   a.k.a. IAmKapuze);
 - added :amap, :anoremap and :aunmap commands to configure mappings in
   navigation mode (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added :regedit command for external editing of register contents (thanks to
   Daniel J. Perry, a.k.a. BioBox; patch by Rostislav Tolushkin, a.k.a.
   nullptr-deref);
 - added Ctrl-Y key to command-line mode.  It activates fast navigation that
   allows entering deep paths by a series of searches for individual path
   components (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added Ctrl-J key to command-line navigation.  It leaves the mode without
   opening a file/directory (thanks to filterfalse);
 - added Ctrl-O key to command-line navigation that goes to parent directory;
 - added Ctrl-N/P keys to command-line navigation to move view cursor up/down
   (thanks to Henrik Holst, a.k.a. hholst80, and dmocek);
 - added Arrows/Home/End/Page Up/Page Down keys to command-line navigation to
   move view cursor (thanks to Henrik Holst, a.k.a. hholst80, and dmocek).

Core:
 - added printing stats while in :compare mode (patch by Alexandr Keyp, a.k.a.
   IAmKapuze);
 - don't move cursor on search failure during search with a count (patch by
   filterfalse);
 - specified a few more cases when to show a search message with search
   highlighting turned on: if found a match, if wrapping is turned on, and in
   visual mode (patch by filterfalse);
 - a regular search logic showing messages is applied to n/N (patch by
   filterfalse).

File operations:
 - made aborting deletion abort the operation on the rest of files when
   deleting multiple files.

Macros:
 - changed %N macro to also not start a process group for a command (thanks to
   Oskar Grunning, a.k.a. sQVe).

Scripting:
 - added input() builtin function to prompt user for input (thanks to Artur F.,
   a.k.a. arturfabriciohahaedgy);
 - added filereadable() builtin function mainly as a way to check file's
   presence.

Menus and dialogs:
 - added r key to :jobs menu, which reloads the list of jobs (thanks to Sylwia
   Ptasinska, a.k.a. SylEleuth);
 - made feedback after pressing dd in :jobs more prominent (thanks to Sylwia
   Ptasinska, a.k.a. SylEleuth).

TUI (Text User Interface):
 - added builtin handling of mouse events (thanks to ranousse, Sergei Shilovsky
   and user451421541757324; patch by 高浩亮, a.k.a. haolian9);
 - added ETA to detailed progress dialog (thanks to Jose Riha, a.k.a.
   jose1711);
 - apply file highlighting to "ext" and "fileext" view columns (thanks to
   aleksejrs);
 - merged file conflict comparison dialog into the main conflict dialog (thanks
   to aleksejrs);
 - made file conflict more concise (thanks to aleksejrs).

Color schemes:
 - added additional User10..User20 highlight groups and corresponding %10*-%20*
   macros (thanks to Sylwia Ptasinska, a.k.a. SylEleuth);
 - update Default-256 to differentiate between more file types (thanks to
   aleksejrs).

Invocation:
 - added `--plugins-dir` command-line option which allows specifying additional
   places to look for plugins (thanks to 高浩亮, a.k.a. haolian9).

Performance:
 - reduced amount of memory consumed by `:compare groupids`;
 - made `:compare bycontents` not bother reading content of files which have
   unique size.

Documentation:
 - provide basic instructions in the documentation on how mappings work (thanks
   to dmocek);
 - fixed description of %i macro in the documentation to mention that it runs
   command in background.

Packaging:
 - changed use of `$(filter-out)` in src/Makefile.am to `$(var:from=to)`
   substitution to get rid of a warning on configuration;
 - changed how pthread support is detected by configure script to handle more
   cases (thanks to Markus Elfring, a.k.a. elfring);
 - changed configure script to fail if neither perl nor vim is available
   instead of failing to generate tags for Vim-style documentation (thanks to
   Sergei Trofimovich, a.k.a. trofi);
 - install icons also to ${prefix}/share/icons.  It's not clear that using
   ${prefix}/share/pixmaps will always be handled properly (thanks to Szilárd
   Andai).

Integration:
 - made instances running inside AppImage consider contents of `/etc/vifm`
   (thanks to aleksejrs);
 - fixed $VIFM_APPDIR_ROOT being ignored by :help command, which made it not
   work properly from AppImage (thanks to infinitewhileloop).

Only on Windows:
 - fixed escaping of file paths when using 'vicmd' or 'vixcmd' to open a file
   on Windows (thanks to Phil Runninger).

Noteworthy fixes:
 - fixed abort due to assertion failure on using zx normal mode key after
   leaving tree in some cases (thanks to Mark S., a.k.a. Markuzcha);
 - fixed asynchronous previewing of symbolic links, which required manual
   redraw (thanks to Alexandre Viau);
 - fixed FUSE mounting assuming `2>` redirection is supported by the shell,
   which isn't true at least for csh and tcsh (thanks to Evgeniy, a.k.a.
   iron-udjin);
 - fixed dialogs not handling non-latin characters well;
 - fixed :locate never escaping its arguments (should be done unless the first
   one starts with a dash).  This is a regression in 0.7.6;
 - fixed n/N not moving the cursor without prior search (patch by filterfalse);
 - fixed resetting 'hlsearch' during incremental search in visual mode (patch
   by filterfalse);
 - fixed dropping selected files on empty input during incremental search in
   visual mode when 'hlsearch' is set (patch by filterfalse);
 - fixed segfault on trying to use a pipe from Lua after its parent VifmJob
   object was garbage-collected (thanks to PRESFIL);
 - fixed 'previewprg' not being respected on switching to view mode (regression
   in 0.12-beta) (thanks to Sitaram Chamarty).

See change log for the full list of changes and by whom they were suggested or
implemented.

21 September 2022
=================

Vifm v0.12.1
------------

Thanks to everyone who tried out the beta.

Changes overview:

 - Expression register for command-line prompts (Ctrl-R =).

   If you ever wanted to insert result of evaluating an expression into
   command-line, now you can.  One of the most useful applications of this is
   pasting clipboard's contents without the risk of it being processed as user
   input (e.g., `:<c-r>=system('xsel')`).

 - Selection handling improvements.

   New :keepsel command-prefix is meant to suppress clearing of selection done
   automatically after most of command-line commands thus avoiding the need for
   using `gs` command to restore it.  As a common case, the behaviour for :view
   command has been changed to not drop selection.

   Restoring selection in a newly entered directory can now be done not just
   from a register populated ahead via yanking selection (`"rgs`), but just by
   executing `gs` to restore selection the directory had before it was left
   last time.  Vifm remembers last 10 locations with non-empty selection.

 - An arbitrary editor can now be fully integrated via Lua.

   'vicmd' and 'vixcmd' were always there, but commands specified in these
   options could receive Vim-specific arguments they don't expect.  Writing a
   shell wrapper was an option, but it had to do guesswork while
   post-processing arguments meant for Vim, which is error prone.  A Lua
   handler can now be used instead.  It receives full context about editor
   invocation and can perfectly forward the request to an arbitrary editor.

 - TUI improvements.

   Escaping of unprintable characters, less of annoying flickering, slightly
   better File Info dialog.

   Conflict resolution dialog now provides a sub-dialog for comparing
   conflicting files and is also smarter at picking which actions to offer.

 - Lua API additions (still experimental).

   The API now gives some access to layout, tabs and keys.

   Unlike :*map commands, keys API allows defining custom selectors (like "2j"
   in "d2j"), keys that accept an argument (like "a" in "ma") and keys that
   accept selectors (custom or builtin).

 - Other.

   Bulk retargetting of links, optional implicit `:cd` on command line, macros
   that expand to non-empty selection, supporting more `<keys>`, completion
   for `fish` shell.

 - Fixes.

   Escaping of arguments and slashes in paths will now hopefully work better on
   Windows, which is generally an issue there.  Yori shell is now also handled
   on Windows.

   New %N macro can be used to fix image preview in Kitty terminal.

Core:
 - added expression pseudo-register (Ctrl-R =) for command-line mode (thanks to
   Marcos Cruz and Jiji from Vifm Q2A site);
 - added parsing of \c and \C sequences in regular expressions to force case
   ignoring or matching respectively (thanks to filterfalse and Safal Piya,
   a.k.a. mrsafalpiya).

Configuration:
 - changed how location of trash directory is determined.  Now starting
   `vifm --no-configs` won't mess anything up if you're using `~/.vifm`.  Can
   potentially cause some trouble for existing configurations, but shouldn't.

Command-line mode:
 - added :keepsel command.  Changes default behaviour after running a :command
   to not reset selection of a view (thanks to dalvand and sharklasers996);
 - added -skip parameter to :copy/:move/:alink/:rlink.  Makes the commands
   automatically skip files that exist at destination instead of refusing to
   proceed (thanks to Jose Riha, a.k.a. jose1711);
 - added handling of "-" in :session for switching to a previous session;
 - added ":history exprreg" menu for displaying history of expression register
   values;
 - do not reset selection on :view command (thanks to Alexandre Viau);
 - permit directories with trailing slashes supplied by external commands in
   `:[un]select !cmd` (patch by filterfalse).

Normal and visual modes:
 - changed [c and ]c to also traverse added/missing entries (thanks to qsmodo);
 - added cl key visual mode (similar to its function in normal mode);
 - extended cl normal mode key to handle selection of multiple files (thanks to
   aleksejrs);
 - made gs normal mode key remember selection for up to 10 last entered
   directories (thanks to ratnamhof and Matthias Braun, a.k.a. mb720).

:set command and options:
 - added 'autocd' option.  Makes invalid :commands be interpreted as an implicit
   :cd command (thanks to Taras Halturin, a.k.a. halturin);
 - added %o macro to 'statusline', which expands to Unix permissions in octal
   form (and to nothing on Windows) (thanks to iSeeU816);
 - added "datasync" value to 'iooptions' option to configure whether writes on
   file copying when 'syscalls' is on are synchronized periodically (thanks to
   Andrew Savchenko and Afz);
 - added "ehistory" value to 'vifminfo' and 'sessionoptions' option.  It manages
   storing of expression register history;
 - added optional border for horizontal split layout controlled by newly added
   "hborder" in 'fillchars' (patch by qsmodo);
 - added "maxtreedepth" value to 'previewoptions' option, which allows limiting
   depths of the displayed tree (thanks to Afz);
 - set 'title' option by default if $TERM is foot* as its terminfo entry might
   lack tsl and fsl attributes (thanks to nobodyatandnothing).

Macros:
 - added %N macro that prevents detaching viewers from current session (thanks
   to emorozov);
 - added %pu macro that disables caching of viewer's output (thanks to b0x4it);
 - added %l/%"l and %L/%"L macros for the list of selected files.  %f is not
   empty if there is no selection, which is not always desirable (thanks to
   ratnamhof).

Angle bracket notation:
 - added angle-bracket notation for alpha keys with Alt and Shift modifiers
   (<[am]-s-[a-z]>, <s-[am]-[a-z]>) (thanks to Reece Petersen);
 - added angle-bracket notation for numeric keys with Alt modifier
   (<[am]-[0-9]>) (thanks to anonymous at Vifm Q2A site);
 - added angle-bracket notation for some shifted grey keys: <s-home>, <s-end>,
   <s-left>, <s-right>, <s-up>, <s-down>, <s-pageup>, <s-pagedown>, <s-delete>,
   <s-insert> (patch by M Kelly).

Scripting:
 - extended has() builtin function to check for Lua handlers;
 - don't expand() macros in environment variables (patch by filterfalse).

Lua:
 - upgraded Lua from 5.4.3 to 5.4.4;
 - added sample plugin for using mpc;
 - added sample plugin for customizing editor;
 - added vifm.escape() function;
 - added vifm.run() function (similar to `:!`);
 - added vifm.sessions.current() function;
 - added vifm.keys.add() for adding mappings (can accept selectors or an
   argument like in `'a`) and selectors;
 - enable os.tmpname();
 - exposed minimal API for tabs (includes layout).

TUI (Text User Interface):
 - escape unreadable characters in menus, command-line mode, dialogs and
   statusbar messages (thanks to MadMaverick9);
 - hide graphics when displaying dialogs or entering menus, more or file info
   modes (thanks to heelsleeh and PRESFIL);
 - fixed multiple cases of cursor/UI flickering.

Color schemes:
 - added CmpUnmatched and CmpBlank highlight groups (thanks to qsmodo).

Menus and dialogs:
 - changed conflict dialog to offer "Merge all" option even for files if there
   are some directories left to process (thanks to dalvand);
 - added comparison action to conflict resolution dialog (thanks to anonymous at
   Vifm Q2A site and dalvand);
 - display permissions in octal form in File Info dialog and group them with
   owner/group info (thanks to iSeeU816);
 - reformat File Info dialog to be more compact (thanks to chelovechishko).

Performance:
 - extended optimizations for globs to cover `something*` and `some*thing`
   cases.

Vim-plugin:
 - added :PeditVifm command (and corresponding :PeditVim) to the plugin (thanks
   to Mukund Mauji, a.k.a. maujim).

Only on Windows:
 - added initial support for Yori shell on Windows (not everything might work
   well at this point) (thanks to LinArcX);
 - fixed argument escaping issues for foreground programs on Windows (thanks to
   fohrums);
 - fixed auto-detection of GUI programs on Windows, which prevents Vifm from
   waiting on them to finish (thanks to Azin Sharaf);
 - fixed `start` in :file[x]type commands on Windows not being considered as
   present;
 - fixed slashes being doubled in macros like %"c on Windows with cmd.exe as a
   shell (thanks to Toby Hawkins, a.k.a. HawkinsT).

Documentation:
 - documented that <del> key might correspond to <bs> (thanks to dalvand).

Noteworthy fixes:
 - fixed building when fdatasync() call isn't available (thanks to Schrijvers
   Luc, a.k.a. Begasus);
 - fixed severe performance degradation after measuring size of large directory
   trees;
 - fixed `:compare listunique` yielding different results depending on which
   view is active due to not processing bottom files in the current view in some
   situations;
 - fixed graphics not being cleared properly on switching between viewers in
   view mode;
 - fixed processing of extended keys on OpenBSD;
 - fixed :. file modifier incorrectly checking for one path being parent of
   another and producing weird results ("/pa" was considered parent of "/path",
   with "th" being the result) (thanks to Dennis Preiser, a.k.a. 0xDP);
 - fixed --remote and --remote-expr failing if $TERM isn't valid (regression in
   0.11-beta) (thanks to b0x4it);
 - fixed directory preview resetting after detaching from it (thanks to Luka
   Markušić, a.k.a. mark2185).

See change log for the full list of changes and by whom they were suggested or
implemented.

September 05, 2022
==================

Vifm v0.12.1 beta
-----------------

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Changes overview:

 - Expression register for command-line prompts (Ctrl-R =).

   If you ever wanted to insert result of evaluating an expression into
   command-line, now you can.  One of the most useful applications of this is
   pasting clipboard's contents without the risk of it being processed as user
   input (e.g., `:<c-r>=system('xsel')`).

 - Selection handling improvements.

   New :keepsel command-prefix is meant to suppress clearing of selection done
   automatically after most of command-line commands thus avoiding the need for
   using `gs` command to restore it.  As a common case, the behaviour for :view
   command has been changed to not drop selection.

   Restoring selection in a newly entered directory can now be done not just
   from a register populated ahead via yanking selection (`"rgs`), but just by
   executing `gs` to restore selection the directory had before it was left
   last time.  Vifm remembers last 10 locations with non-empty selection.

 - An arbitrary editor can now be fully integrated via Lua.

   'vicmd' and 'vixcmd' were always there, but commands specified in these
   options could receive Vim-specific arguments they don't expect.  Writing a
   shell wrapper was an option, but it had to do guesswork while
   post-processing arguments meant for Vim, which is error prone.  A Lua
   handler can now be used instead.  It receives full context about editor
   invocation and can perfectly forward the request to an arbitrary editor.

 - TUI improvements.

   Escaping of unprintable characters, less of annoying flickering, slightly
   better File Info dialog.

   Conflict resolution dialog now provides a sub-dialog for comparing
   conflicting files and is also smarter at picking which actions to offer.

 - Lua API additions (still experimental).

   The API now gives some access to layout, tabs and keys.

   Unlike :*map commands, keys API allows defining custom selectors (like "2j"
   in "d2j"), keys that accept an argument (like "a" in "ma") and keys that
   accept selectors (custom or builtin).

 - Other.

   Bulk retargetting of links, optional implicit `:cd` on command line, macros
   that expand to non-empty selection, supporting more `<keys>`.

 - Fixes.

   Escaping of arguments and slashes in paths will now hopefully work better on
   Windows, which is generally an issue there.  Yori shell is now also handled
   on Windows.

   New %N macro can be used to fix image preview in Kitty terminal.

Core:
 - added expression pseudo-register (Ctrl-R =) for command-line mode (thanks to
   Marcos Cruz and Jiji from Vifm Q2A site);
 - added parsing of \c and \C sequences in regular expressions to force case
   ignoring or matching respectively (thanks to filterfalse and Safal Piya,
   a.k.a. mrsafalpiya).

Configuration:
 - changed how location of trash directory is determined.  Now starting
   `vifm --no-configs` won't mess anything up if you're using `~/.vifm`.  Can
   potentially cause some trouble for existing configurations, but shouldn't.

Command-line mode:
 - added :keepsel command.  Changes default behaviour after running a :command
   to not reset selection of a view (thanks to dalvand and sharklasers996);
 - added -skip parameter to :copy/:move/:alink/:rlink.  Makes the commands
   automatically skip files that exist at destination instead of refusing to
   proceed (thanks to Jose Riha, a.k.a. jose1711);
 - added handling of "-" in :session for switching to a previous session;
 - added ":history exprreg" menu for displaying history of expression register
   values;
 - do not reset selection on :view command (thanks to Alexandre Viau).

Normal and visual modes:
 - changed [c and ]c to also traverse added/missing entries (thanks to qsmodo);
 - added cl key visual mode (similar to its function in normal mode);
 - extended cl normal mode key to handle selection of multiple files (thanks to
   aleksejrs);
 - made gs normal mode key remember selection for up to 10 last entered
   directories (thanks to ratnamhof and Matthias Braun, a.k.a. mb720).

:set command and options:
 - added 'autocd' option.  Makes invalid :commands be interpreted as an implicit
   :cd command (thanks to Taras Halturin, a.k.a. halturin);
 - added %o macro to 'statusline', which expands to Unix permissions in octal
   form (and to nothing on Windows) (thanks to iSeeU816);
 - added "datasync" value to 'iooptions' option to configure whether writes on
   file copying when 'syscalls' is on are synchronized periodically (thanks to
   Andrew Savchenko and Afz);
 - added "ehistory" value to 'vifminfo' and 'sessionoptions' option.  It manages
   storing of expression register history;
 - added optional border for horizontal split layout controlled by newly added
   "hborder" in 'fillchars' (patch by qsmodo);
 - added "maxtreedepth" value to 'previewoptions' option, which allows limiting
   depths of the displayed tree (thanks to Afz);
 - set 'title' option by default if $TERM is foot* as its terminfo entry might
   lack tsl and fsl attributes (thanks to nobodyatandnothing).

Macros:
 - added %N macro that prevents detaching viewers from current session (thanks
   to emorozov);
 - added %pu macro that disables caching of viewer's output (thanks to b0x4it);
 - added %l/%"l and %L/%"L macros for the list of selected files.  %f is not
   empty if there is no selection, which is not always desirable (thanks to
   ratnamhof).

Angle bracket notation:
 - added angle-bracket notation for alpha keys with Alt and Shift modifiers
   (<[am]-s-[a-z]>, <s-[am]-[a-z]>) (thanks to Reece Petersen);
 - added angle-bracket notation for numeric keys with Alt modifier
   (<[am]-[0-9]>) (thanks to anonymous at Vifm Q2A site);
 - added angle-bracket notation for some shifted grey keys: <s-home>, <s-end>,
   <s-left>, <s-right>, <s-up>, <s-down>, <s-pageup>, <s-pagedown>, <s-delete>,
   <s-insert> (patch by M Kelly).

Scripting:
 - extended has() builtin function to check for Lua handlers;
 - don't expand() macros in environment variables (patch by filterfalse).

Lua:
 - upgraded Lua from 5.4.3 to 5.4.4;
 - added sample plugin for using mpc;
 - added sample plugin for customizing editor;
 - added vifm.escape() function;
 - added vifm.run() function (similar to `:!`);
 - added vifm.sessions.current() function;
 - added vifm.keys.add() for adding mappings (can accept selectors or an
   argument like in `'a`) and selectors;
 - enable os.tmpname();
 - exposed minimal API for tabs (includes layout).

TUI (Text User Interface):
 - escape unreadable characters in menus, command-line mode, dialogs and
   statusbar messages (thanks to MadMaverick9);
 - hide graphics when displaying dialogs or entering menus, more or file info
   modes (thanks to heelsleeh and PRESFIL);
 - fixed multiple cases of cursor/UI flickering.

Color schemes:
 - added CmpUnmatched and CmpBlank highlight groups (thanks to qsmodo).

Menus and dialogs:
 - changed conflict dialog to offer "Merge all" option even for files if there
   are some directories left to process (thanks to dalvand);
 - added comparison action to conflict resolution dialog (thanks to anonymous at
   Vifm Q2A site and dalvand);
 - display permissions in octal form in File Info dialog and group them with
   owner/group info (thanks to iSeeU816);
 - reformat File Info dialog to be more compact (thanks to chelovechishko).

Performance:
 - extended optimizations for globs to cover `something*` and `some*thing`
   cases.

Vim-plugin:
 - added :PeditVifm command (and corresponding :PeditVim) to the plugin (thanks
   to Mukund Mauji, a.k.a. maujim).

Only on Windows:
 - added initial support for Yori shell on Windows (not everything might work
   well at this point) (thanks to LinArcX);
 - fixed argument escaping issues for foreground programs on Windows (thanks to
   fohrums);
 - fixed auto-detection of GUI programs on Windows, which prevents Vifm from
   waiting on them to finish (thanks to Azin Sharaf);
 - fixed `start` in :file[x]type commands on Windows not being considered as
   present;
 - fixed slashes being doubled in macros like %"c on Windows with cmd.exe as a
   shell (thanks to Toby Hawkins, a.k.a. HawkinsT).

Documentation:
 - documented that <del> key might correspond to <bs> (thanks to dalvand).

Noteworthy fixes:
 - fixed building when fdatasync() call isn't available (thanks to Schrijvers
   Luc, a.k.a. Begasus);
 - fixed severe performance degradation after measuring size of large directory
   trees;
 - fixed `:compare listunique` yielding different results depending on which
   view is active due to not processing bottom files in the current view in some
   situations;
 - fixed graphics not being cleared properly on switching between viewers in
   view mode;
 - fixed processing of extended keys on OpenBSD;
 - fixed :. file modifier incorrectly checking for one path being parent of
   another and producing weird results ("/pa" was considered parent of "/path",
   with "th" being the result) (thanks to Dennis Preiser, a.k.a. 0xDP);
 - fixed --remote and --remote-expr failing if $TERM isn't valid (regression in
   0.11-beta) (thanks to b0x4it);
 - fixed directory preview resetting after detaching from it (thanks to Luka
   Markušić, a.k.a. mark2185).

See change log for the full list of changes and by whom they were suggested or
implemented.

September 29, 2021
==================

Vifm v0.12
----------

New version makes textual preview asynchronous, provides support for 24-bit
colors, improves tree-view and introduces experimental Lua plugins support.

Thanks to everyone who tried out the beta.

Main changes:
 - color schemes and preview now support 24-bit colors;
 - depth of tree-view can now be limited and directories in it can be folded;
 - textual preview of files is now done asynchronously;
 - list of files can now be directly piped to programs via new macros;
 - external editing now asks for a re-edit after a failure;
 - status line can now take up several lines;
 - new keys for controlling viewer while in view mode;
 - view column separators;
 - Vifm has received a more advanced, but currently experimental, extension
   interface in a form of Lua plugins;
 - new logo.

More detailed list of changes.

Core:
 - added experimental Lua plugins support;
 - added interactive re-editing of file names in external editor.  Format now
   supports comments for displaying last error and original file names (thanks
   to Jose Riha, a.k.a. jose1711 and Diogo Lemos (a.k.a. dmlemos));
 - started using quickview's cache in view mode;
 - extended cache of viewer's output to contain multiple entries (initial
   version of the cache was added to skip redrawing graphics);
 - run background programs detached from a terminal (thanks to Miguel Madrid
   Mencía, a.k.a. mimame).

File operations:
 - added periodic forced flushing of data on copying data when 'syscalls' is set
   (thanks to Matthias Braun, a.k.a. mb720).

Invocation:
 - don't list inaccessible instances on --server-list.

Important fixes:
 - fixed losing files as a result of executing ":copy! &" or ":move! &" when
   both panes show the same directory (thanks to Hans Bieshaar);
 - fixed copying of executable files not working on FreeBSD (thanks to
   makijato);
 - fixed inability to map escape sequences due to extended keys in terminfo
   database (patch by M Kelly);
 - fixed hang on using previewer that takes over control over the terminal (like
   7z does to read password) (thanks to PRESFIL);
 - fixed vifm-convert-dircolors dropping copies of entries that differ only by
   case (thanks to flux242).

Normal and visual modes:
 - added zx normal mode key to fold/unfold directories in tree views.  The
   implementation is not optimal at this moment though (thanks to filterfalse,
   Ben Lu, a.k.a. ayroblu, RR0925 and Alexandre Viau).

Key bindings:
 - added a and A view mode keys that switch to next and previous viewer of
   current file correspondingly (thanks to j-xella);
 - added i view mode key that toggles raw mode (ignoring of defined viewers)
   (thanks to j-xella).

Command-line mode:
 - added :plugins command that opens plugins menu;
 - added :plugin command that manages plugins;
 - added :st[op] command what behaves like Ctrl-Z.  It's to be used in mappings
   (thanks to GummyGun);
 - added "depth=N" parameter to the :tree command (thanks to filterfalse);
 - added "combine" pseudo-attribute to "cterm" parameter of :highlight command.
   It changes behaviour from overwriting attributes of a parent highlight group
   (within their hierarchy) to appending to it (thanks to Andrew Savchenko);
 - added "gui", "guifg" and "guibg" parameters to :highlight command;
 - added network mount and `subst` targets to :volumes menu (patch by Phil
   Runninger);
 - made :compare obey file name filters (patch by qsmodo);
 - allow user-defined commands to include numbers in their names (thanks to
   anonymous at Vifm Q2A site).

:set command and options:
 - added %P macro to 'rulerformat' (and thus to 'statusline'), which expands to
   All, Top, xx% or Bot to indicate position within the view (thanks to
   iSeeU816);
 - added 'previewoptions' option to allow tweaking graphics preview a bit
   (thanks to Joshua Jensch, a.k.a., patroclos and flux242);
 - added "toptreestats" value to 'previewoptions' option, which makes stats
   appear before the tree (patch by qsmodo);
 - added literal values to 'viewcolumns' option (thanks to Jose Riha, a.k.a.
   jose1711, chelovechishko, DieSpinne and rwtallant13);
 - added %N macro to 'statusline' option, which adds a line break and increases
   height of the status line (thanks to Jose Riha, a.k.a. jose1711, qsmodo and
   jcarreja);
 - added "l" and "r" flags to the 'tuioptions' option.  It controls truncation
   of view titles (patch by qsmodo);
 - added %c 'statusline' macro that displays size of current file-system (thanks
   to Jose Riha, a.k.a. jose1711).

Macros:
 - added %Pl and %Pz macros for redirecting list of files to standard input of
   commands (thanks to PRESFIL);
 - added %v macro for vertical splitting in terminal multiplexers (patch by
   qsmodo).

File preview:
 - allow exploring empty files or output of viewers (thanks to Andrew
   Savchenko);
 - implemented asynchronous previewing for textual and pass-through (think
   sixel) viewers (thanks to StillSteal, laur89, Joshua Jensch, a.k.a. patroclos
   and p-kolacz);
 - detect broken links on preview and report them as such.

Color schemes:
 - changed semantics of light* color groups to add bold attribute only for
   terminals with less than 16 colors.  Aligns the behaviour with Vim.  Affects
   you only if you relied on that implicit bold attribute (thanks to Jose Riha,
   a.k.a. jose1711).

Menus and dialogs:
 - added shortcuts for toggling flags in permissions dialog on *nix (patch by
   qsmodo);
 - added some additional information about instance to the :version/:vifm menu;
 - made contents of map menus easier to comprehend by adding captions;
 - include shortcut prefix in title of map menus;
 - always display UID/GID in numeric form in File Info dialog (in parenthesis if
   the id was resolved to a string).

TUI (Text User Interface):
 - added support for direct/"true"/24-bit colors for ncurses 6.0 or later
   (thanks to Anton Kochkov, a.k.a. XVilka and IvanBarsukov);
 - added progress indication to the ruler of the view mode (corresponds to new
   %P macro of 'rulerformat') (thanks to iSeeU816).

Documentation:
 - document how %i macro affects background jobs.

Only on Windows:
 - fixed :goto not working with backslashes (thanks to Grueslayer);
 - fixed processing of keypad keys (thanks to Roland);
 - fixed :empty leaving empty directories (thanks to Grueslayer).

Packaging:
 - made it possible to build AppImage for Vifm (patch by michaellee8);
 - fixed running tests as root user (thanks to Michka Popoff, a.k.a. iMichka);
 - fixed an issue with packaging on one system (Linux in this case) and
   building on the other (OS X) (thanks to chenrui333).

Vim-plugin:
 - made :VifmCs of the plugin handle 24-bit colors.

Other changes:
 - updated logo of the project (thanks to Hescalalu for making it).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

September 15, 2021
==================

Vifm v0.12 beta
---------------

New version makes textual preview asynchronous, provides support for 24-bit
colors, improves tree-view and introduces experimental Lua plugins support.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - color schemes and preview now support 24-bit colors;
 - depth of tree-view can now be limited and directories in it can be folded;
 - textual preview of files is now done asynchronously;
 - list of files can now be directly piped to programs via new macros;
 - external editing now asks for a re-edit after a failure;
 - status line can now take up several lines;
 - Vifm has received a more advanced, but currently experimental, extension
   interface in a form of Lua plugins.

More detailed list of changes.

Core:
 - added experimental Lua plugins support;
 - added interactive re-editing of file names in external editor.  Format now
   supports comments for displaying last error and original file names (thanks
   to Jose Riha, a.k.a. jose1711 and Diogo Lemos (a.k.a. dmlemos));
 - started using quickview's cache in view mode;
 - extended cache of viewer's output to contain multiple entries (initial
   version of the cache was added to skip redrawing graphics);
 - run background programs detached from a terminal (thanks to Miguel Madrid
   Mencía, a.k.a. mimame).

File operations:
 - added periodic forced flushing of data on copying data when 'syscalls' is set
   (thanks to Matthias Braun, a.k.a. mb720).

Invocation:
 - don't list inaccessible instances on --server-list.

Important fixes:
 - fixed losing files as a result of executing ":copy! &" or ":move! &" when
   both panes show the same directory (thanks to Hans Bieshaar);
 - fixed copying of executable files not working on FreeBSD (thanks to
   makijato);
 - fixed inability to map escape sequences due to extended keys in terminfo
   database (patch by M Kelly);
 - fixed hang on using previewer that takes over control over the terminal (like
   7z does to read password) (thanks to PRESFIL);
 - fixed vifm-convert-dircolors dropping copies of entries that differ only by
   case (thanks to flux242).

Normal and visual modes:
 - added zx normal mode key to fold/unfold directories in tree views.  The
   implementation is not optimal at this moment though (thanks to filterfalse,
   Ben Lu, a.k.a. ayroblu, RR0925 and Alexandre Viau).

Key bindings:
 - added a and A view mode keys that switch to next and previous viewer of
   current file correspondingly (thanks to j-xella);
 - added i view mode key that toggles raw mode (ignoring of defined viewers)
   (thanks to j-xella).

Command-line mode:
 - added :plugins command that opens plugins menu;
 - added :plugin command that manages plugins;
 - added :st[op] command what behaves like Ctrl-Z.  It's to be used in mappings
   (thanks to GummyGun);
 - added "depth=N" parameter to the :tree command (thanks to filterfalse);
 - added "combine" pseudo-attribute to "cterm" parameter of :highlight command.
   It changes behaviour from overwriting attributes of a parent highlight group
   (within their hierarchy) to appending to it (thanks to Andrew Savchenko);
 - added "gui", "guifg" and "guibg" parameters to :highlight command;
 - added network mount and `subst` targets to :volumes menu (patch by Phil
   Runninger);
 - made :compare obey file name filters (patch by qsmodo);
 - allow user-defined commands to include numbers in their names (thanks to
   anonymous at Vifm Q2A site).

:set command and options:
 - added %P macro to 'rulerformat' (and thus to 'statusline'), which expands to
   All, Top, xx% or Bot to indicate position within the view (thanks to
   iSeeU816);
 - added 'previewoptions' option to allow tweaking graphics preview a bit
   (thanks to Joshua Jensch, a.k.a., patroclos and flux242);
 - added "toptreestats" value to 'previewoptions' option, which makes stats
   appear before the tree (patch by qsmodo);
 - added literal values to 'viewcolumns' option (thanks to Jose Riha, a.k.a.
   jose1711, chelovechishko, DieSpinne and rwtallant13);
 - added %N macro to 'statusline' option, which adds a line break and increases
   height of the status line (thanks to Jose Riha, a.k.a. jose1711, qsmodo and
   jcarreja);
 - added "l" and "r" flags to the 'tuioptions' option.  It controls truncation
   of view titles (patch by qsmodo);
 - added %c 'statusline' macro that displays size of current file-system (thanks
   to Jose Riha, a.k.a. jose1711).

Macros:
 - added %Pl and %Pz macros for redirecting list of files to standard input of
   commands (thanks to PRESFIL);
 - added %v macro for vertical splitting in terminal multiplexers (patch by
   qsmodo).

File preview:
 - allow exploring empty files or output of viewers (thanks to Andrew
   Savchenko);
 - implemented asynchronous previewing for textual and pass-through (think
   sixel) viewers (thanks to StillSteal, laur89, Joshua Jensch, a.k.a. patroclos
   and p-kolacz);
 - detect broken links on preview and report them as such.

Color schemes:
 - changed semantics of light* color groups to add bold attribute only for
   terminals with less than 16 colors.  Aligns the behaviour with Vim.  Affects
   you only if you relied on that implicit bold attribute (thanks to Jose Riha,
   a.k.a. jose1711).

Menus and dialogs:
 - added shortcuts for toggling flags in permissions dialog on *nix (patch by
   qsmodo);
 - added some additional information about instance to the :version/:vifm menu;
 - made contents of map menus easier to comprehend by adding captions;
 - include shortcut prefix in title of map menus;
 - always display UID/GID in numeric form in File Info dialog (in parenthesis if
   the id was resolved to a string).

TUI (Text User Interface):
 - added support for direct/"true"/24-bit colors for ncurses 6.0 or later
   (thanks to Anton Kochkov, a.k.a. XVilka and IvanBarsukov);
 - added progress indication to the ruler of the view mode (corresponds to new
   %P macro of 'rulerformat') (thanks to iSeeU816).

Documentation:
 - document how %i macro affects background jobs.

Only on Windows:
 - fixed :goto not working with backslashes (thanks to Grueslayer);
 - fixed processing of keypad keys (thanks to Roland);
 - fixed :empty leaving empty directories (thanks to Grueslayer).

Packaging:
 - made it possible to build AppImage for Vifm (patch by michaellee8);
 - fixed running tests as root user (thanks to Michka Popoff, a.k.a. iMichka);
 - fixed an issue with packaging on one system (Linux in this case) and
   building on the other (OS X) (thanks to chenrui333).

Vim-plugin:
 - made :VifmCs of the plugin fail when 'termguicolors' produces a 24-bit color
   value (thanks to AtomToast).

Other changes:
 - updated logo of the project (thanks to Hescalalu for making it).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

September 24, 2020
==================

Vifm v0.11
----------

New version finally updates format of vifminfo file unblocking changes like
persistent tabs, sessions and timestamp-based merging of histories.  In
addition to that there were a number of improvements in user interface and
multiple performance-related improvements.

Thanks to everyone who tried out the beta.

Main changes:
 - added persistent tabs;
 - added sessions;
 - new format of vifminfo file (old version is imported on first run);
 - smarter merging of histories between runs that avoids dropping of new
   entries;
 - version of default color scheme for 256-color terminals;
 - make tab labels customizable;
 - try to keep ratio of pane sizes constant on resizes, restarts and tab
   switching;
 - various performance improvements.

More detailed list of changes.

Normal and visual modes:
 - added gF normal mode key which acts like gf, but goes all the way to the
   ultimate target of the chain of symbolic links (thanks to Alexandre Viau);
 - improve navigation on gf key.  Do fewer refreshes and disable filters to
   make target visible.

Core:
 - more sensible merging of histories from multiple instances in vifminfo file
   (avoids dropping of new entries);
 - invalidate cached directory information (size or number of files) on inode
   change (thanks to Jose Riha, a.k.a. jose1711);
 - invalidate cached directory size when using it to compute size of some
   parent directory;
 - improve cursor positioning after file operations;
 - made it possible to escape commas in patterns (as usual, by doubling)
   (thanks to filterfalse).

Command-line mode:
 - added :tabo[nly] command that closes all tabs but the current one;
 - added :session and :delsession commands to manage sessions (thanks to Marcos
   Cruz);
 - added optional "full" parameter for the :restart command, which makes it
   discard essentially all context.  This is useful with persistent tabs
   (thanks to Yusuf Aktepe);
 - don't reset histories of views in inactive tabs on :restart;
 - improve differentiation between association and list forms of :colorscheme
   command on startup.  This is important if list contains name of color scheme
   that doesn't exist.

:set command and options:
 - added "tabs" value to 'vifminfo' option.  It enables persistent tabs (thanks
   to Cosmin Popescu, a.k.a. cosminadrianpopescu, filterfalse and Neil Griffin,
   a.k.a. ngriffin7a);
 - added "v" flag to the 'tuioptions' option.  It controls whether width of
   middle border is adjusted to equalize view sizes (thanks to Matthias Braun,
   a.k.a. mb720);
 - added 'sessionoptions' option, which is an alternative to 'vifminfo' for
   session files;
 - added 'tablabel' option that specifies format of a single tab's label when
   non-empty (thanks to aleksejrs);
 - added 'tabprefix' and 'tabsuffix' options that allow customizing tabline
   separators (thanks to CoreCube);
 - added "treeleafsparent" value to 'dotdirs' option (thanks to filterfalse and
   Melandel);
 - do not require "dhistory" to be present in 'vifminfo' for "savedirs" to
   work.

Menus and dialogs:
 - added rate and progress bar to progress dialog (patch by Alborz Jafari);
 - added real (fully resolved) path to the File Info dialog (thanks to
   Alexandre Viau);
 - added number of hard links to the File Info dialog;
 - abort menu, more or file information modes before processing remote commands
   (thanks to kangshugang);
 - deduplicate elements of the :file menu;
 - make displaying of spaces in mappings more intelligent by using <space> at
   the start or end of lhs or rhs.

File preview:
 - improve handling of long or unknown escape sequences in previews (thanks to
   bratekarate);
 - use global color scheme for preview on the other pane ignoring its
   directory-specific color scheme;
 - invalidate textual quickview cache if it contains fewer lines than window
   height and is incomplete.

TUI (Text User Interface):
 - try harder to preserve position of the splitter.  Avoid its drift on
   terminal resizes and preserve ratio of windows on startup and tab switches
   (thanks to Shakil Akhtar);
 - prevent internally selected files (e.g., via a range of a :command) from
   appearing selected in user interface (thanks to filterfalse);
 - reduce width of top line when side borders are hidden (`set tuioptions-=s`)
   (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - escape some characters as ^X in view and tab titles, custom menu titles, on
   status line and in terminal title (thanks to filterfalse);
 - use the same label for :grep and :find custom lists as the one used for
   :grep and :find menus (thanks to filterfalse);
 - use unexpanded command for title of custom file lists produced using %u or
   %U macros and menus produced using %m or %M macros (thanks to filterfalse);
 - use name of user-defined command in titles of custom views and menus (thanks
   to filterfalse);
 - preserve more information in the title on turning custom view into tree
   using :tree (thanks to filterfalse);
 - limit length of custom file list title to 80 character positions (thanks to
   filterfalse).

Integration:
 - detect being run under Wayland (relevant for :filextype commands) (thanks to
   mhdzli);
 - make 'title' option work in all terminals which contain "tsl" and "fsl"
   capabilities (thanks to m-kru);
 - update terminal title when in menus (thanks to filterfalse).

Color schemes:
 - added HardLink highlight group for regular files with more than one hard
   link (patch by Hans Bieshaar);
 - added LineNr highlight group for highlighting line number column of views
   (thanks to Anton Gepting);
 - added OddLine highlight group for highlighting every second entry line of a
   pane (thanks to iSeeU816).

Scripting:
 - added v:jobcount builtin variable that provides number of active jobs
   (number of lines in :jobs menu) (thanks to iSeeU816);
 - added v:session builtin variable that provides name of current session or is
   set to an empty string.

Configuration:
 - added three MC-like shortcuts to sample vifmrc files (Alt-I, Alt-O and
   Ctrl-U) (thanks to Hans Bieshaar);
 - added global Default-256 color scheme to be used in terminals that support
   256-color palette (automatically in sample vifmrc) (thanks to Shakil
   Akhtar);
 - create $VIFM/colors directory with default color scheme only on the first
   run (thanks to ranousse);
 - use mime-types in associations in sample vifmrc (thanks to Shakil Akhtar).

Performance:
 - significantly improved performance of adding files to registers that contain
   thousands of files.  As a result contents of registers is sorted now (thanks
   to Typo);
 - significantly improved performance of adding files to trash that contains
   thousands of files.  As a result contents of trash is sorted now (thanks to
   Typo);
 - significantly improved speed of sourcing files (includes processing
   configuration on startup and :restart);
 - significantly improved speed of handling typical globs (and therefore
   mime-type matchers) and reduced amount of memory they take up (thanks to
   yanzhang0219);
 - improve performance of mime-type detection by caching the results;
 - make comparing files by contents (`:compare bycontents`) somewhat faster
   (thanks to maxigaz);
 - don't force view reload after every :command that resets selection when
   there was non-empty selection.  This might make metadata of files less
   up-to-date, but should increase overall performance (thanks to Jose Riha,
   a.k.a. jose1711);
 - avoid reloading source file list after copy or move operation when possible
   (thanks to Jose Riha, a.k.a. jose1711).

Vim-plugin:
 - added :VifmCs command to the plugin for "converting" Vim's color scheme into
   a Vifm's one (patch by Roman Plášil, a.k.a. Quiark);
 - multiple improvements of syntax highlighting.

Documentation:
 - added references to "Menus and dialogs" section of documentation from
   :commands and keys which open menus and dialogs detailed there;
 - explicitly documented that macros are expanded in user defined commands
   (thanks to gcmt);
 - made documentation of :command more comprehensible;
 - document that user must disable netrw plugin on his own when enabling
   g:vifm_replace_netrw.  Vifm's plugin can't do it, because it's loaded after
   plugins shipped with Vim;
 - documented how selection is handled on launching files (like on l or Enter
   keys);
 - improve documentation on "bycontents" of :compare (thanks to maxigaz);
 - somewhat improved documentation on 'ignorecase' and 'smartcase' options
   (thanks to filterfalse);
 - fixed Vim version of the documentation lacking description of %p macro of
   'findprg'.

Only on Windows:
 - added basic support for using PowerShell (pausing doesn't work) (thanks to
   Fang, a.k.a. peromage);
 - display targets of .lnk-files in file information dialog;
 - implemented capturing output of background applications (thanks to Gene
   Zharov);
 - follow targets of .lnk-files (thanks to Alexandre Viau);
 - fixed 'chaselinks' (symbolic links weren't resolved);
 - fixed creating symbolic links with 'syscalls' being turned on;
 - fixed creating symbolic links with spaces in source or target paths;
 - fixed Alt key combinations being broken since v0.9;
 - fixed running non-cmd shells being broken by adding 'shellcmdflag' in
   0.10.1;
 - fixed issues with non-tiny 'shellcmdflag' (patch by Bas Bossink, a.k.a.
   basbossink);
 - fixed detecting presence of :file[x]type commands on Windows when
   backslashes are present in path (thanks to anonymous and n.e. at Vifm Q2A
   site).

Packaging:
 - avoid interposing system's reallocarray(), when it's present (thanks to Ben
   Boeckel, a.k.a. mathstuf);
 - install only one version of sample config and media script, the one which
   corresponds to operating system being used (thanks to Michael Vetter, a.k.a.
   jubalh and Ondrej Novy, a.k.a. onovy);
 - clean up tests directory on "make clean" in the top of the tree.

Important fixes:
 - fixed generation of :highlight command for OtherWin on writing
   $VIFM/colors/Default.vifm.  The bug caused white background of inactive pane
   (thanks to Stas Malavin);
 - fixed `:move subdir &` renaming file in the process and doing weird stuff to
   multiple files (thanks to 45jqlakjrf87ayte7hy34ter4nguijauzl4eitk);
 - fixed graphics preview not being cleared on switching tabs or starting
   external applications (including on :shell);
 - fixed mapped keys being reinterpreted as builtin keys if RHS of the mapping
   failed at some point (e.g., contained an unmapped key) (thanks to Seok Won
   Lee, a.k.a. ijleesw);
 - fixed dialogs not being visible when UI updates are silenced via <silent>
   mappings;
 - fixed panic on some redraw operations mixing with file operations during
   terminal resizing (thanks to aca).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

September 10, 2020
==================

Vifm v0.11 beta
---------------

New version finally updates format of vifminfo file unblocking changes like
persistent tabs, sessions and timestamp-based merging of histories.  In
addition to that there were a number of improvements in user interface and
multiple performance-related improvements.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added persistent tabs;
 - added sessions;
 - new format of vifminfo file (old version is imported on first run);
 - smarter merging of histories between runs that avoids dropping of new
   entries;
 - version of default color scheme for 256-color terminals;
 - make tab labels customizable;
 - try to keep ratio of pane sizes constant on resizes, restarts and tab
   switching;
 - various performance improvements.

More detailed list of changes.

Normal and visual modes:
 - added gF normal mode key which acts like gf, but goes all the way to the
   ultimate target of the chain of symbolic links (thanks to Alexandre Viau);
 - improve navigation on gf key.  Do fewer refreshes and disable filters to
   make target visible.

Core:
 - more sensible merging of histories from multiple instances in vifminfo file
   (avoids dropping of new entries);
 - invalidate cached directory information (size or number of files) on inode
   change (thanks to Jose Riha, a.k.a. jose1711);
 - invalidate cached directory size when using it to compute size of some
   parent directory;
 - improve cursor positioning after file operations.

Command-line mode:
 - added :tabo[nly] command that closes all tabs but the current one;
 - added :session and :delsession commands to manage sessions (thanks to Marcos
   Cruz);
 - added optional "full" parameter for the :restart command, which makes it
   discard essentially all context.  This is useful with persistent tabs
   (thanks to Yusuf Aktepe);
 - don't reset histories of views in inactive tabs on :restart;
 - improve differentiation between association and list forms of :colorscheme
   command on startup.  This is important if list contains name of color scheme
   that doesn't exist.

:set command and options:
 - added "tabs" value to 'vifminfo' option.  It enables persistent tabs (thanks
   to Cosmin Popescu, a.k.a. cosminadrianpopescu, filterfalse and Neil Griffin,
   a.k.a. ngriffin7a);
 - added "v" flag to the 'tuioptions' option.  It controls whether width of
   middle border is adjusted to equalize view sizes (thanks to Matthias Braun,
   a.k.a. mb720);
 - added 'sessionoptions' option, which is an alternative to 'vifminfo' for
   session files;
 - added 'tablabel' option that specifies format of a single tab's label when
   non-empty (thanks to aleksejrs);
 - added 'tabprefix' and 'tabsuffix' options that allow customizing tabline
   separators (thanks to CoreCube);
 - added "treeleafsparent" value to 'dotdirs' option (thanks to filterfalse and
   Melandel);
 - do not require "dhistory" to be present in 'vifminfo' for "savedirs" to
   work.

Menus and dialogs:
 - added rate and progress bar to progress dialog (patch by Alborz Jafari);
 - added real (fully resolved) path to the File Info dialog (thanks to
   Alexandre Viau);
 - added number of hard links to the File Info dialog;
 - abort menu, more or file information modes before processing remote commands
   (thanks to kangshugang);
 - deduplicate elements of the :file menu;
 - make displaying of spaces in mappings more intelligent by using <space> at
   the start or end of lhs or rhs.

File preview:
 - improve handling of long or unknown escape sequences in previews (thanks to
   bratekarate);
 - use global color scheme for preview on the other pane ignoring its
   directory-specific color scheme;
 - invalidate textual quickview cache if it contains fewer lines than window
   height and is incomplete.

TUI (Text User Interface):
 - try harder to preserve position of the splitter.  Avoid its drift on
   terminal resizes and preserve ratio of windows on startup and tab switches
   (thanks to Shakil Akhtar);
 - prevent internally selected files (e.g., via a range of a :command) from
   appearing selected in user interface (thanks to filterfalse);
 - reduce width of top line when side borders are hidden (`set tuioptions-=s`)
   (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - escape some characters as ^X in view and tab titles, custom menu titles, on
   status line and in terminal title (thanks to filterfalse);
 - use the same label for :grep and :find custom lists as the one used for
   :grep and :find menus (thanks to filterfalse);
 - use unexpanded command for title of custom file lists produced using %u or
   %U macros and menus produced using %m or %M macros (thanks to filterfalse);
 - use name of user-defined command in titles of custom views and menus (thanks
   to filterfalse);
 - preserve more information in the title on turning custom view into tree
   using :tree (thanks to filterfalse);
 - limit length of custom file list title to 80 character positions (thanks to
   filterfalse).

Integration:
 - detect being run under Wayland (relevant for :filextype commands) (thanks to
   mhdzli);
 - make 'title' option work in all terminals which contain "tsl" and "fsl"
   capabilities (thanks to m-kru);
 - update terminal title when in menus (thanks to filterfalse).

Color schemes:
 - added HardLink highlight group for regular files with more than one hard
   link (patch by Hans Bieshaar);
 - added LineNr highlight group for highlighting line number column of views
   (thanks to Anton Gepting);
 - added OddLine highlight group for highlighting every second entry line of a
   pane (thanks to iSeeU816).

Scripting:
 - added v:jobcount builtin variable that provides number of active jobs
   (number of lines in :jobs menu) (thanks to iSeeU816);
 - added v:session builtin variable that provides name of current session or is
   set to an empty string.

Configuration:
 - added three MC-like shortcuts to sample vifmrc files (Alt-I, Alt-O and
   Ctrl-U) (thanks to Hans Bieshaar);
 - added global Default-256 color scheme to be used in terminals that support
   256-color palette (automatically in sample vifmrc) (thanks to Shakil
   Akhtar);
 - create $VIFM/colors directory with default color scheme only on the first
   run (thanks to ranousse);
 - use mime-types in associations in sample vifmrc (thanks to Shakil Akhtar).

Performance:
 - significantly improved performance of adding files to registers that contain
   thousands of files.  As a result contents of registers is sorted now (thanks
   to Typo);
 - significantly improved performance of adding files to trash that contains
   thousands of files.  As a result contents of trash is sorted now (thanks to
   Typo);
 - significantly improved speed of sourcing files (includes processing
   configuration on startup and :restart);
 - significantly improved speed of handling typical globs (and therefore
   mime-type matchers) and reduced amount of memory they take up (thanks to
   yanzhang0219);
 - improve performance of mime-type detection by caching the results;
 - make comparing files by contents (`:compare bycontents`) somewhat faster
   (thanks to maxigaz);
 - don't force view reload after every :command that resets selection when
   there was non-empty selection.  This might make metadata of files less
   up-to-date, but should increase overall performance (thanks to Jose Riha,
   a.k.a. jose1711);
 - avoid reloading source file list after copy or move operation when possible
   (thanks to Jose Riha, a.k.a. jose1711).

Vim-plugin:
 - added :VifmCs command to the plugin for "converting" Vim's color scheme into
   a Vifm's one (patch by Roman Plášil, a.k.a. Quiark);
 - multiple improvements of syntax highlighting.

Documentation:
 - added references to "Menus and dialogs" section of documentation from
   :commands and keys which open menus and dialogs detailed there;
 - explicitly documented that macros are expanded in user defined commands
   (thanks to gcmt);
 - made documentation of :command more comprehensible;
 - document that user must disable netrw plugin on his own when enabling
   g:vifm_replace_netrw.  Vifm's plugin can't do it, because it's loaded after
   plugins shipped with Vim;
 - documented how selection is handled on launching files (like on l or Enter
   keys);
 - improve documentation on "bycontents" of :compare (thanks to maxigaz);
 - somewhat improved documentation on 'ignorecase' and 'smartcase' options
   (thanks to filterfalse);
 - fixed Vim version of the documentation lacking description of %p macro of
   'findprg'.

Only on Windows:
 - added basic support for using PowerShell (pausing doesn't work) (thanks to
   Fang, a.k.a. peromage);
 - display targets of .lnk-files in file information dialog;
 - implemented capturing output of background applications (thanks to Gene
   Zharov);
 - follow targets of .lnk-files (thanks to Alexandre Viau);
 - fixed 'chaselinks' (symbolic links weren't resolved);
 - fixed creating symbolic links with 'syscalls' being turned on;
 - fixed creating symbolic links with spaces in source or target paths;
 - fixed Alt key combinations being broken since v0.9;
 - fixed running non-cmd shells being broken by adding 'shellcmdflag' in
   0.10.1;
 - fixed issues with non-tiny 'shellcmdflag' (patch by Bas Bossink, a.k.a.
   basbossink);
 - fixed detecting presence of :file[x]type commands on Windows when
   backslashes are present in path (thanks to anonymous and n.e. at Vifm Q2A
   site).

Packaging:
 - avoid interposing system's reallocarray(), when it's present (thanks to Ben
   Boeckel, a.k.a. mathstuf);
 - install only one version of sample config and media script, the one which
   corresponds to operating system being used (thanks to Michael Vetter, a.k.a.
   jubalh and Ondrej Novy, a.k.a. onovy);
 - clean up tests directory on "make clean" in the top of the tree.

Important fixes:
 - fixed generation of :highlight command for OtherWin on writing
   $VIFM/colors/Default.vifm.  The bug caused white background of inactive pane
   (thanks to Stas Malavin);
 - fixed `:move subdir &` renaming file in the process and doing weird stuff to
   multiple files (thanks to 45jqlakjrf87ayte7hy34ter4nguijauzl4eitk);
 - fixed graphics preview not being cleared on switching tabs or starting
   external applications (including on :shell);
 - fixed mapped keys being reinterpreted as builtin keys if RHS of the mapping
   failed at some point (e.g., contained an unmapped key) (thanks to Seok Won
   Lee, a.k.a. ijleesw);
 - fixed dialogs not being visible when UI updates are silenced via <silent>
   mappings;
 - fixed panic on some redraw operations mixing with file operations during
   terminal resizing (thanks to aca).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 29, 2019
=============

vifm v0.10.1
------------

This version provides additions and improvements for media management feature,
several enhancements related to text user interface, extra features to Vim
plugin thanks to merging in neovim-vifm plugin and various small changes.

Thanks to everyone who tried out the beta.

Main changes:
 - added file preview to miller mode;
 - added preview macro to directly output to terminal, which enables use of
   Sixel graphics for previewing;
 - added udisks2 backend to vifm-media script (bundled script for managing
   media) and version of the script for OS X;
 - updated code to make use of large amount of color pairs when available;
 - functionality of previously separate neovim-vifm plugin got merged into the
   main plugin;
 - multiple improvements to :media menu;
 - improved performance in several use cases (quickview, lots of unhighlighted
   files, unnecessary cursor updates and redraws).

More detailed list of changes.

Command-line mode:
 - added :cds command that navigates to path obtained by substitution in the
   current path (thanks to j-xella);
 - added :hideui command that hides interface to show previous commands'
   output (thanks to dikiy);
 - added one more invocation format of :colorscheme command, which picks the
   first available color scheme that is supported by the terminal (thanks to
   Jose Riha, a.k.a. jose1711);
 - always preserve tabs on :restart (thanks to mwgkgk);
 - refuse to compare directory against itself via :compare command (thanks to
   Jose Riha, a.k.a. jose1711).

:set command and options:
 - added fileroot view column, which displays full name of directories and
   symbolic links to directories and only root of name for everything
   else (thanks to chelovechishko);
 - added 'shellcmdflag' option that allows customizing how shell is invoked.
   Enables running it in interactive mode, which can make shell aliases and
   functions work (thanks to Ink (a.k.a. inknoir), John Shea (a.k.a. coachshea)
   and randomizedthinking);
 - added L flag to 'shortmess' option to display only last directory in tab
   line instead of full path (thanks to chelovechishko);
 - added ^= operation for string list options (thanks to SearyBlue);
 - added ^= operation for options of set kind;
 - added rpreview: key to 'milleroptions' option that allows enabling preview
   of files (thanks to Svadkos and Tom Jansen);
 - added %p macro to 'findprg' option.  It works as a mix between %a and %A
   macros: usually contains arguments passed to :find command, but unlike %a
   doesn't include any predicates (thanks to Sitaram Chamarty and Tuan Bui,
   a.k.a. tuanbass);
 - added "space" and "nospace" values to 'sizefmt' option (patch by
   zsugabubus);
 - do not add leading comma to string list options on set opt+=item;
 - don't create trash directory on startup if 'trash' is off (patch by
   zsugabubus).

Key bindings:
 - improved <silent> to do not forcefully update screen after the mapping if no
   screen updates were skipped.

Completion:
 - complete user name in paths after initial tilde (e.g., :cd ~r<tab> =>
   :cd ~root).

Macros:
 - added %pd macro that makes preview output directly affect terminal
   circumventing curses interface, which could be used to display sixel
   images (thanks to Tom Jansen).

Color schemes:
 - added OtherWin highlight group for highlighting inactive pane (thanks to
   John Fred Fadrigalan, a.k.a. cevhyruz).

Menus and dialogs:
 - added indication of entry's availability to :file, :file[x]type and
   :fileviewer menus;
 - added [ and ] bindings to :media menu that provide navigation between
   devices (patch by zsugabubus);
 - added decorations to :media menu (patch by zsugabubus);
 - react to Enter in :media menu on device lines, mount on "not mounted" line
   and do nothing otherwise (patch by zsugabubus);
 - show empty lines in :media only if there is enough vertical space (patch by
   zsugabubus);
 - removed empty line from :file and similar menus for case when vifm was
   configured with --disable-desktop-files flag (second time).

Scripting:
 - added extcached() builtin function, which can be used to improve performance
   of file queries by caching results of external commands (thanks to Matthias
   Braun, a.k.a. mb720).

Invocation:
 - try to preserve symbolic links in current path when starting vifm by
   checking value of $PWD (thanks to Vigi).

Core:
 - resolve symbolic links for mime-type matchers (thanks to Vigi);
 - do not check for view changes while suggestions are visible.  It can mess up
   TUI, especially in combination with preview (thanks to ks1c).

File operations:
 - preserve extended attributes on copying files (thanks to hutou);
 - don't throw away errors that were ignored by the user, display them at the
   end of operation;
 - consume input during foreground file operations.  Otherwise it remains
   buffered and is processed after the operation is over, which might not be
   the intent of the user;
 - reduce number of options available on file conflict when source and
   destination are the same to avoid confusion (options that overwrite do
   nothing in this case) (thanks to aleksejrs).

File preview:
 - do not complain about empty output of a graphics previewer for view mode;
 - clear preview before displaying suggestions (thanks to ks1c).

TUI (Text User Interface):
 - renamed filename filter to "permanent filter" consisting of
   "explicit" (ex-manual) and "implicit" (ex-automatic) parts (thanks to
   Sitaram Chamarty);
 - changed file rename prompt to indicate whether full name or only its root is
   being changed;
 - try to determine widths of printed character more accurately;
 - drop leading space implicitly added to time columns in views (thanks to
   laggardkernel).

Integration:
 - added info= field to parser of 'mediaprg' output.  It provides custom
   message for the media (patch by zsugabubus);
 - added udisks2 backend to vifm-media script (bundled script for managing
   media).  Requires python and dbus module for it to be installed (because
   udisks2 and dbus are too shitty to be used on command-line) (thanks to
   Tykin);
 - added FUSE_MOUNT3 filetype format, which is equivalent to FUSE_MOUNT, but
   doesn't perform unmounting.  Helpful to use something like avfs (thanks to
   Jose Riha, a.k.a. jose1711);
 - added vifm-media-osx script that is configured to be used (via 'mediaprg')
   on OS X (patch by Von Welch);
 - error stream from 'mediaprg' isn't considered anymore when deciding if
   mounting/unmounting was successful.  While technically an incompatible
   change, it's unlikely to cause any issues;
 - spawn 'mediaprg' in foreground to allow interactions with the user, like
   providing a password (patch by zsugabubus);
 - properly remove FUSE mount points if they are symbolic links;
 - assume that any $TERM value that starts with "xterm-", "rxvt-" or "screen-"
   supports terminal title (thanks to Matthias Braun, a.k.a. mb720).

Documentation:
 - better documentation for TabLine and TabLineSel highlighting groups (thanks
   to mwgkgk);
 - clearer documentation/description for :*unmap commands and 'vicmd'/'vixcmd'
   options (thanks to chelovechishko);
 - improve documentation of patterns and globs (thanks to afsheenb);
 - improved documentation on filters (thanks to Sitaram Chamarty);
 - document more details about expansion of FUSE macros;
 - make documentation of 'findprg' more readable.

Vim-plugin:
 - added :Vifm command as an alias for :EditVifm (patch by rbong);
 - added optional splitting of the embedded terminal (g:vifm_embed_split).  Has
   support for Vim's <mods> and <count> (patch by rbong);
 - added option to synchronize working directory of the embedded instance of
   vifm with the Vim host (g:vifm_embed_cwd) (patch by rbong);
 - added ability to replace netrw with vifm (g:vifm_replace_netrw and
   g:vifm_replace_netrw_cmd) (patch by rbong);
 - added autodetection of *.vifm files as files with "vifm" filetype to the
   plugin (patch by Anton Kochkov, a.k.a. XVilka).

Configuration:
 - added example of using xsel to sample vifmrc file (thanks to chelovechishko);
 - enabled 'vimhelp' in sample vifmrc file by default.

Performance:
 - added caching to quickview for a single file to avoid fileviewer being called
   more often than needed (thanks to agguser);
 - try to avoid superfluous screen updates related to cursor position;
 - remember when file doesn't match any file-specific highlighting groups for
   better performance (thanks to Gomme Bidule);
 - generate faster regular expressions by vifm-convert-dircolors (thanks to
   Gomme Bidule).

Only on Windows:
 - upgraded to PDCurses 3.8 (was 3.4) for Windows.  This allows using 256 colors
   inside ConEmu.  Note that ConEmu has issues processing 256 colors on the last
   line of the screen, so avoid using them for status line (thanks to dancread).

Other changes:
 - don't error on trash creation failure due to read-only file system (patch by
   zsugabubus).

Important fixes:
 - fixed losing files on failed move operation.  Source files were deleted
   assuming they were copied successfully, even when errors regarding some of
   them were ignored by the user (thanks to zsugabubus);
 - fixed vifm not making use of large number of color pairs when they are
   available (thanks to Jose Riha (a.k.a. jose1711) and Hans Petter
   Jansson (a.k.a. hpjansson));
 - fixed color pairs being exhausted on Windows when default color ends up being
   used often, this caused highlighting to go awry (thanks to dancread);
 - fixed textual output of graphical previewers not being displayed in view
   mode (thanks to agguser);
 - fixed DirEnter autocommand being called with view being in a mixed state of
   old and new location (thanks to Kendrick Taylor, a.k.a. sixcircuit).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 15, 2019
=============

vifm v0.10.1 beta
-----------------

This version provides additions and improvements for media management feature,
several enhancements related to text user interface, extra features to Vim
plugin thanks to merging in neovim-vifm plugin and various small changes.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added file preview to miller mode
 - added preview macro to directly output to terminal, which enables use of
   Sixel graphics for previewing;
 - added udisks2 backend to vifm-media script (bundled script for managing
   media) and version of the script for OS X;
 - updated code to make use of large amount of color pairs when available;
 - functionality of previously separate neovim-vifm plugin got merged into the
   main plugin;
 - multiple improvements to :media menu;
 - improved performance in several use cases (quickview, lots of unhighlighted
   files, unnecessary cursor updates and redraws).

More detailed list of changes.

Command-line mode:
 - added :cds command that navigates to path obtained by substitution in the
   current path (thanks to j-xella);
 - added :hideui command that hides interface to show previous commands'
   output (thanks to dikiy);
 - added one more invocation format of :colorscheme command, which picks the
   first available color scheme that is supported by the terminal (thanks to
   Jose Riha, a.k.a. jose1711);
 - always preserve tabs on :restart (thanks to mwgkgk);
 - refuse to compare directory against itself via :compare command (thanks to
   Jose Riha, a.k.a. jose1711).

:set command and options:
 - added fileroot view column, which displays full name of directories and
   symbolic links to directories and only root of name for everything
   else (thanks to chelovechishko);
 - added 'shellcmdflag' option that allows customizing how shell is invoked.
   Enables running it in interactive mode, which can make shell aliases and
   functions work (thanks to Ink (a.k.a. inknoir), John Shea (a.k.a. coachshea)
   and randomizedthinking);
 - added L flag to 'shortmess' option to display only last directory in tab
   line instead of full path (thanks to chelovechishko);
 - added ^= operation for string list options (thanks to SearyBlue);
 - added ^= operation for options of set kind;
 - added rpreview: key to 'milleroptions' option that allows enabling preview
   of files (thanks to Svadkos and Tom Jansen);
 - added %p macro to 'findprg' option.  It works as a mix between %a and %A
   macros: usually contains arguments passed to :find command, but unlike %a
   doesn't include any predicates (thanks to Sitaram Chamarty and Tuan Bui,
   a.k.a. tuanbass);
 - do not add leading comma to string list options on set opt+=item;
 - don't create trash directory on startup if 'trash' is off (patch by
   zsugabubus).

Key bindings:
 - improved <silent> to do not forcefully update screen after the mapping if no
   screen updates were skipped.

Completion:
 - complete user name in paths after initial tilde (e.g., :cd ~r<tab> =>
   :cd ~root).

Macros:
 - added %pd macro that makes preview output directly affect terminal
   circumventing curses interface, which could be used to display sixel
   images (thanks to Tom Jansen).

Color schemes:
 - added OtherWin highlight group for highlighting inactive pane (thanks to
   John Fred Fadrigalan, a.k.a. cevhyruz).

Menus and dialogs:
 - added indication of entry's availability to :file, :file[x]type and
   :fileviewer menus;
 - added [ and ] bindings to :media menu that provide navigation between
   devices (patch by zsugabubus);
 - added decorations to :media menu (patch by zsugabubus);
 - react to Enter in :media menu on device lines, mount on "not mounted" line
   and do nothing otherwise (patch by zsugabubus);
 - show empty lines in :media only if there is enough vertical space (patch by
   zsugabubus);
 - removed empty line from :file and similar menus for case when vifm was
   configured with --disable-desktop-files flag (second time).

Scripting:
 - added extcached() builtin function, which can be used to improve performance
   of file queries by caching results of external commands (thanks to Matthias
   Braun, a.k.a. mb720).

Invocation:
 - try to preserve symbolic links in current path when starting vifm by
   checking value of $PWD (thanks to Vigi).

Core:
 - resolve symbolic links for mime-type matchers (thanks to Vigi);
 - do not check for view changes while suggestions are visible.  It can mess up
   TUI, especially in combination with preview (thanks to ks1c).

File operations:
 - preserve extended attributes on copying files (thanks to hutou);
 - don't throw away errors that were ignored by the user, display them at the
   end of operation;
 - consume input during foreground file operations.  Otherwise it remains
   buffered and is processed after the operation is over, which might not be
   the intent of the user;
 - reduce number of options available on file conflict when source and
   destination are the same to avoid confusion (options that overwrite do
   nothing in this case) (thanks to aleksejrs).

File preview:
 - do not complain about empty output of a graphics previewer for view mode;
 - clear preview before displaying suggestions (thanks to ks1c).

TUI (Text User Interface):
 - renamed filename filter to "permanent filter" consisting of
   "explicit" (ex-manual) and "implicit" (ex-automatic) parts (thanks to
   Sitaram Chamarty);
 - changed file rename prompt to indicate whether full name or only its root is
   being changed;
 - try to determine widths of printed character more accurately;
 - drop leading space implicitly added to time columns in views (thanks to
   laggardkernel).

Integration:
 - added info= field to parser of 'mediaprg' output.  It provides custom
   message for the media (patch by zsugabubus);
 - added udisks2 backend to vifm-media script (bundled script for managing
   media).  Requires python and dbus module for it to be installed (because
   udisks2 and dbus are too shitty to be used on command-line) (thanks to
   Tykin);
 - added FUSE_MOUNT3 filetype format, which is equivalent to FUSE_MOUNT, but
   doesn't perform unmounting.  Helpful to use something like avfs (thanks to
   Jose Riha, a.k.a. jose1711);
 - added vifm-media-osx script that is configured to be used (via 'mediaprg')
   on OS X (patch by Von Welch);
 - error stream from 'mediaprg' isn't considered anymore when deciding if
   mounting/unmounting was successful.  While technically an incompatible
   change, it's unlikely to cause any issues;
 - spawn 'mediaprg' in foreground to allow interactions with the user, like
   providing a password (patch by zsugabubus);
 - properly remove FUSE mount points if they are symbolic links.

Documentation:
 - better documentation for TabLine and TabLineSel highlighting groups (thanks
   to mwgkgk);
 - clearer documentation/description for :*unmap commands and 'vicmd'/'vixcmd'
   options (thanks to chelovechishko);
 - improve documentation of patterns and globs (thanks to afsheenb);
 - improved documentation on filters (thanks to Sitaram Chamarty);
 - document more details about expansion of FUSE macros;
 - make documentation of 'findprg' more readable.

Vim-plugin:
 - added :Vifm command as an alias for :EditVifm (patch by rbong);
 - added optional splitting of the embedded terminal (g:vifm_embed_split).  Has
   support for Vim's <mods> and <count> (patch by rbong);
 - added option to synchronize working directory of the embedded instance of
   vifm with the Vim host (g:vifm_embed_cwd) (patch by rbong);
 - added ability to replace netrw with vifm (g:vifm_replace_netrw and
   g:vifm_replace_netrw_cmd) (patch by rbong).

Configuration:
 - added example of using xsel to sample vifmrc file (thanks to chelovechishko);
 - enabled 'vimhelp' in sample vifmrc file by default.

Performance:
 - added caching to quickview for a single file to avoid fileviewer being called
   more often than needed (thanks to agguser);
 - try to avoid superfluous screen updates related to cursor position;
 - remember when file doesn't match any file-specific highlighting groups for
   better performance (thanks to Gomme Bidule);
 - generate faster regular expressions by vifm-convert-dircolors (thanks to
   Gomme Bidule).

Only on Windows:
 - upgraded to PDCurses 3.8 (was 3.4) for Windows.  This allows using 256 colors
   inside ConEmu.  Note that ConEmu has issues processing 256 colors on the last
   line of the screen, so avoid using them for status line (thanks to dancread).

Other changes:
 - don't error on trash creation failure due to read-only file system (patch by
   zsugabubus).

Important fixes:
 - fixed losing files on failed move operation.  Source files were deleted
   assuming they were copied successfully, even when errors regarding some of
   them were ignored by the user (thanks to zsugabubus);
 - fixed vifm not making use of large number of color pairs when they are
   available (thanks to Jose Riha (a.k.a. jose1711) and Hans Petter
   Jansson (a.k.a. hpjansson));
 - fixed color pairs being exhausted on Windows when default color ends up being
   used often, this caused highlighting to go awry (thanks to dancread);
 - fixed textual output of graphical previewers not being displayed in view
   mode (thanks to agguser);
 - fixed DirEnter autocommand being called with view being in a mixed state of
   old and new location (thanks to Kendrick Taylor, a.k.a. sixcircuit).

See change log for the full list of changes and by whom they were suggested or
implemented.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

November 11, 2018
=================

vifm v0.10
----------

New version includes long awaited tabs and support for managing media.
The first one comes in two flavours: tabs either include layout or don't.
The latter relies on a helper script, whose job is to adapt existing tools to
make them usable by vifm.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added tabs which either operate on the level of layout or level of
   individual panes;
 - added ability to synchronize contents of registers among multiple
   instances;
 - added menu for managing media (relies on helper that does the managing);
 - improved cursor positioning and control over it;
 - ability to colorize status line.

More detailed list of changes.

Command-line mode:
 - added :tabc[lose] command that closes current tab unless it's the last one;
 - added :tabm[ove] command that moves tabs (thanks to filterfalse);
 - added :tabname command that updates name of the current tab;
 - added :tabnew command that creates a new tab (thanks to Cosmin Popescu,
   a.k.a. cosminadrianpopescu);
 - added :tabn[ext] and :tabp[revious] commands, which work as gt and gT normal
   mode shortcuts correspondingly (thanks to Cosmin Popescu, a.k.a.
   cosminadrianpopescu);
 - added :qa[ll], :wqa[ll] and :xa[ll] commands that always try to exit vifm no
   matter how many tabs are open;
 - added :goto command that navigates to specified file/directory (thanks to
   mateusz28 and Dmitry Frank, a.k.a. dimonomid);
 - added :regular command that leaves custom view (thanks to gammaray);
 - :quit, :wq, :exit, :xit, ZZ and ZQ now try to close current tab before
   closing the application;
 - make :echo and :execute report parsing errors in more detail than just
   "invalid expression";
 - make :cabbrev and :cnoreabbrev always treat bar (`|`) as part of their
   arguments, just like :*map commands do (thanks to filterfalse);
 - make :tree! toggle view in and out of tree mode (thanks to gammaray);
 - more accurate error message on handling non directories passed to :cd.

:set command and options:
 - added 'tabscope' option that controls style of tabs (thanks to Cosmin
   Popescu, a.k.a. cosminadrianpopescu);
 - added 'showtabline' option that controls visibility of tab line;
 - added 'histcursor' option that gives partial control over when cursor is
   positioned in accordance with record of directory history (thanks to
   filterfalse and Dmitry Frank, a.k.a. dimonomid);
 - added 'quickview' option that controls visibility of quick view (:view)
   (thanks to Jochen Schweizer, a.k.a. durcheinandr);
 - added 'syncregs' option which defines group of instances that share registers
   (patch by Ma_Sys.ma);
 - added 'mediaprg' option that can be used to specify helper for managing
   removable media.  One such helper with support of udevil and udisks is
   provided.  Only for *nix systems;
 - added support for arbitrary expressions in 'statusline': '%{...}', e.g.
   '%{&sort}' evaluates to the value of the sort option (patch by Dmitry Frank,
   a.k.a. dimonomid);
 - added "M" flag to 'shortmess' option to control shortening of titles in
   windows of terminal multiplexers created by vifm down to file name instead of
   using full path (thanks to mateusz28).

File operations:
 - try to preserve file owner/group on copying (thanks to willemw12).

Normal and visual modes:
 - added gt and gT normal mode shortcuts that switch between tabs in both
   directions.

Key bindings:
 - added <silent> :*map argument that postpones UI updates until RHS is
   completely processed.  Probably not all updates are postponed, to be improved
   as unhandled cases are discovered;
 - added <wait> :*map argument, which resolves prefix conflicts of user-defined
   mappings and builtin keys in favour of user-defined mappings (thanks to Paweł
   Smolak, a.k.a. psmolak).

Angle bracket notation:
 - added <insert> angle bracket notation (thanks to j-xella);
 - added <c-@> angle bracket notation making it possible to map Ctrl-Space key
   (thanks to anonymous at Vifm Q2A site).

File list:
 - use historical cursor position upon startup by default when 'autochpos' is
   on, this is now independent from "savedirs" in 'vifminfo' option (thanks to
   filterfalse);
 - use historical cursor position on navigating to a mark that doesn't specify a
   file by default when 'autochpos' is on (thanks to filterfalse);
 - move cursor after p and P to one of files that were moved or to a cause of
   last conflict (thanks to filterfalse and ranousse);
 - issue a warning if file system lists several files with identical names in
   the same directory.  It used to be assumed that it can't happen (thanks to
   Jose Riha, a.k.a. jose1711).

File preview:
 - support italics in quickview/view mode and in :highlight when curses
   implementation provides corresponding extension.  PDCurses doesn't implement
   it on Windows.  Fallback is to use "reversed" attribute (thanks to GeorgeHJ).

Integration:
 - escape "=" at the beginning of paths (has special meaning in zsh) (thanks to
   agguser).

Menus and dialogs:
 - added :media menu that can list and perform basic operations on removable
   media (requires helper to be available, see 'mediaprg').  Only for *nix
   systems (thanks to Bruce Hunsaker, a.k.a. hunsakerbn and others);
 - added r key to :undolist menu, which resets position in the undo list to
   group under the cursor (thanks to mini-turtle);
 - sort entries of :bmarks menu (thanks to anonymous at Vifm Q2A site);
 - slightly better formatting in :undolist menu;
 - do not reset selection before executing a :command from :commands menu
   (thanks to Jose Riha, a.k.a. jose1711);
 - less strict parsing of output of external command by :[un]select commands.
   Similar to %u/%U and menus allow <file>[:[<line>:[<col>:]] <description>]
   format (thanks to j-xella).

Color schemes:
 - added TabLine highlight group for highlighting tab line;
 - added TabLineSel highlight group for highlighting tip of the selected tab on
   the tab line;
 - added User1..User9 highlight groups and corresponding %[0-9]* 'statusline'
   macro, which makes it possible to colorize parts of status line differently
   (thanks to GeorgeHJ).

TUI (Text User Interface):
 - display list of files in removal confirmation dialog (thanks to ovk).

Scripting:
 - added tabpagenr() function that retrieves number of current or last tab page
   (thanks to filterfalse);
 - added fnameescape() builtin function, which can be used to escape paths on
   construction of :commands (thanks to filterfalse);
 - added second optional parameter to filetype() builtin function that is
   treated as a boolean and specifies whether symbolic links should be resolved;
 - added addition and subtraction operations to the parser;
 - added grouping via parentheses to expressions (thanks to Konst Mayer, a.k.a.
   cdlscpmv);
 - allow passing numerical positions to filetype() function.

Documentation:
 - more explicit documentation about leaving custom views (thanks to tagwint).

Vim-plugin:
 - support embedded terminal in the plugin for newer Vim.

Only on Windows:
 - fixed flickering on Windows (thanks to Alexandre Viau and
   randomizedthinking);
 - fixed graphical applications on Windows not being detected as such, which
   caused vifm to wait until they finish running.  Was broken since 0.9 (thanks
   to r0ck).

Important fixes:
 - fixed error messages from put operation being postponed until the next put
   operation.  Got broken in 0.9;
 - fixed confirmation not being requested on :delete (thanks to anonymous at
   Vifm Q2A site).

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 28, 2018
================

vifm v0.10 beta
---------------

New version includes long awaited tabs and support for managing media.
The first one comes in two flavours: tabs either include layout or don't.
The latter relies on a helper script, whose job is to adapt existing tools to
make them usable by vifm.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added tabs which either operate on the level of layout or level of
   individual panes;
 - added ability to synchronize contents of registers among multiple
   instances;
 - added menu for managing media (relies on helper that does the managing);
 - improved cursor positioning and control over it;
 - ability to colorize status line.

More detailed list of changes.

Command-line mode:
 - added :tabc[lose] command that closes current tab unless it's the last one;
 - added :tabm[ove] command that moves tabs (thanks to filterfalse);
 - added :tabname command that updates name of the current tab;
 - added :tabnew command that creates a new tab (thanks to Cosmin Popescu,
   a.k.a. cosminadrianpopescu);
 - added :tabn[ext] and :tabp[revious] commands, which work as gt and gT normal
   mode shortcuts correspondingly (thanks to Cosmin Popescu, a.k.a.
   cosminadrianpopescu);
 - added :qa[ll], :wqa[ll] and :xa[ll] commands that always try to exit vifm no
   matter how many tabs are open;
 - added :goto command that navigates to specified file/directory (thanks to
   mateusz28 and Dmitry Frank, a.k.a. dimonomid);
 - added :regular command that leaves custom view (thanks to gammaray);
 - :quit, :wq, :exit, :xit, ZZ and ZQ now try to close current tab before
   closing the application;
 - make :echo and :execute report parsing errors in more detail than just
   "invalid expression";
 - make :cabbrev and :cnoreabbrev always treat bar (`|`) as part of their
   arguments, just like :*map commands do (thanks to filterfalse);
 - make :tree! toggle view in and out of tree mode (thanks to gammaray);
 - more accurate error message on handling non directories passed to :cd.

:set command and options:
 - added 'tabscope' option that controls style of tabs (thanks to Cosmin
   Popescu, a.k.a. cosminadrianpopescu);
 - added 'showtabline' option that controls visibility of tab line;
 - added 'histcursor' option that gives partial control over when cursor is
   positioned in accordance with record of directory history (thanks to
   filterfalse and Dmitry Frank, a.k.a. dimonomid);
 - added 'quickview' option that controls visibility of quick view (:view)
   (thanks to Jochen Schweizer, a.k.a. durcheinandr);
 - added 'syncregs' option which defines group of instances that share registers
   (patch by Ma_Sys.ma);
 - added 'mediaprg' option that can be used to specify helper for managing
   removable media.  One such helper with support of udevil and udisks is
   provided.  Only for *nix systems;
 - added support for arbitrary expressions in 'statusline': '%{...}', e.g.
   '%{&sort}' evaluates to the value of the sort option (patch by Dmitry Frank,
   a.k.a. dimonomid);
 - added "M" flag to 'shortmess' option to control shortening of titles in
   windows of terminal multiplexers created by vifm down to file name instead of
   using full path (thanks to mateusz28).

File operations:
 - try to preserve file owner/group on copying (thanks to willemw12).

Normal and visual modes:
 - added gt and gT normal mode shortcuts that switch between tabs in both
   directions.

Key bindings:
 - added <silent> :*map argument that postpones UI updates until RHS is
   completely processed.  Probably not all updates are postponed, to be improved
   as unhandled cases are discovered;
 - added <wait> :*map argument, which resolves prefix conflicts of user-defined
   mappings and builtin keys in favour of user-defined mappings (thanks to Paweł
   Smolak, a.k.a. psmolak).

Angle bracket notation:
 - added <insert> angle bracket notation (thanks to j-xella);
 - added <c-@> angle bracket notation making it possible to map Ctrl-Space key
   (thanks to anonymous at Vifm Q2A site).

File list:
 - use historical cursor position upon startup by default when 'autochpos' is
   on, this is now independent from "savedirs" in 'vifminfo' option (thanks to
   filterfalse);
 - use historical cursor position on navigating to a mark that doesn't specify a
   file by default when 'autochpos' is on (thanks to filterfalse);
 - move cursor after p and P to one of files that were moved or to a cause of
   last conflict (thanks to filterfalse and ranousse);
 - issue a warning if file system lists several files with identical names in
   the same directory.  It used to be assumed that it can't happen (thanks to
   Jose Riha, a.k.a. jose1711).

File preview:
 - support italics in quickview/view mode and in :highlight when curses
   implementation provides corresponding extension.  PDCurses doesn't implement
   it on Windows.  Fallback is to use "reversed" attribute (thanks to GeorgeHJ).

Integration:
 - escape "=" at the beginning of paths (has special meaning in zsh) (thanks to
   agguser).

Menus and dialogs:
 - added :media menu that can list and perform basic operations on removable
   media (requires helper to be available, see 'mediaprg').  Only for *nix
   systems (thanks to Bruce Hunsaker, a.k.a. hunsakerbn and others);
 - added r key to :undolist menu, which resets position in the undo list to
   group under the cursor (thanks to mini-turtle);
 - sort entries of :bmarks menu (thanks to anonymous at Vifm Q2A site);
 - slightly better formatting in :undolist menu;
 - do not reset selection before executing a :command from :commands menu
   (thanks to Jose Riha, a.k.a. jose1711);
 - less strict parsing of output of external command by :[un]select commands.
   Similar to %u/%U and menus allow <file>[:[<line>:[<col>:]] <description>]
   format (thanks to j-xella).

Color schemes:
 - added TabLine highlight group for highlighting tab line;
 - added TabLineSel highlight group for highlighting tip of the selected tab on
   the tab line;
 - added User1..User9 highlight groups and corresponding %[0-9]* 'statusline'
   macro, which makes it possible to colorize parts of status line differently
   (thanks to GeorgeHJ).

Scripting:
 - added tabpagenr() function that retrieves number of current or last tab page
   (thanks to filterfalse);
 - added fnameescape() builtin function, which can be used to escape paths on
   construction of :commands (thanks to filterfalse);
 - added second optional parameter to filetype() builtin function that is
   treated as a boolean and specifies whether symbolic links should be resolved;
 - added addition and subtraction operations to the parser;
 - added grouping via parentheses to expressions (thanks to Konst Mayer, a.k.a.
   cdlscpmv);
 - allow passing numerical positions to filetype() function.

Documentation:
 - more explicit documentation about leaving custom views (thanks to tagwint).

Only on Windows:
 - fixed flickering on Windows (thanks to Alexandre Viau and
   randomizedthinking);
 - fixed graphical applications on Windows not being detected as such, which
   caused vifm to wait until they finish running.  Was broken since 0.9 (thanks
   to r0ck).

Important fixes:
 - fixed error messages from put operation being postponed until the next put
   operation.  Got broken in 0.9;
 - fixed confirmation not being requested on :delete (thanks to anonymous at
   Vifm Q2A site).

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

February 05, 2018
=================

vifm v0.9.1
-----------

This version adds to the list of ways for viewing files by introducing
miller columns view and transposed ls-like view (table view).  Other
developments are related to integration between builtin features as well as
with external applications.

Thanks to everyone who tried out the beta.

Main changes:
 - introduced file view mode known as miller columns or cascading lists;
 - added ability to transpose ls-like view to make it fill by columns;
 - more natural behaviour of movement keys in ls-like view;
 - new `--remote-expr` command-line option can be used to query state of
   running instances;
 - extended retry/ignore/abort query to all file operations;
 - more control over highlight groups via `:highlight` suitable for
   interactive changes;
 - mostly eliminated the need for repeating ga/gA commands through automatic
   size recalculation.

More detailed list of changes.

File operations:
 - added retry/ignore/abort prompt for file copying and directory/file/symlink
   creation when 'syscalls' is on (thanks to einhander);
 - better detection of write errors on file copying.  The error was reported,
   but it wasn't treated as a hard error in a specific case related to caching.

Command-line mode:
 - added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O
   (patch by Dmitry Frank, a.k.a. dimonomid);
 - added ability to remove filename-specific highlighting rules with
   `:highlight clear {pattern}` (thanks to aleksejrs);
 - changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to
   rbong);
 - made :siblnext and :siblprev commands respect dot and name filters;
 - made :siblnext and :siblprev accept [count] range (thanks to filterfalse);
 - made :tree pick up list of files from custom view (thanks to filterfalse);
 - made :highlight update file-specific group on exact match of the pattern
   instead of appending new rule (thanks to aleksejrs);
 - remove empty directories which are specified in 'trashdir' with %r and/or %u
   automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).

:set command and options:
 - added "inode" sorting key, which sorts entries by inode number (thanks to
   eco0414);
 - added 'millerview' option that enables cascading columns interface for the
   view (thanks to sudo-nice);
 - added 'milleroptions' option that configures miller view;
 - added 'lsoptions' option that allows to get transposed grid in ls-like view
   (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added 'previewprg' option, which can be used to override :fileviewer commands
   either temporarily or permanently (thanks to svenn71);
 - added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "u" flag to the 'tuioptions' option.  It enables use of Unicode
   characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "foldsubkeys" value to the 'suggestoptions' option.  It folds multiple
   suggestions with common prefix into one entry (thanks to AndreaHasani).

Normal and visual modes:
 - added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext
   with and without wrapping correspondingly (thanks to filterfalse);
 - do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view;
 - H/M/L keys in ls-like view now account for columns;
 - instead of invalidating directory size previously calculated via ga/gA on
   detecting changes in the directory recalculate its size and propagate update
   through its parents (thanks to filterfalse).

Macros:
 - added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for
   %-, which conflicts with alignment specification and requires explicit width
   specifier (%0-) (thanks to Marcos Cruz).

Scripting:
 - added term() builtin function, which differs from system() only by its
   ability to run interactive applications without confusing vifm's interactions
   with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added v:count and v:count1 builtin variables.  They are assigned to count
   passed to : command;
 - don't trigger DirEnter event with previous directory on startup when list of
   files is specified on stdin (thanks to filterfalse).

Invocation:
 - added `--remote-expr` command-line option, which gives ability to query state
   of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).

Completion:
 - added completion of filename-specific highlight groups for :highlight
   command.

Color schemes:
 - added AuxWin highlight group for highlighting auxiliary parts of windows.

TUI (Text User Interface):
 - extend width of the cursor in ls-like view to the width of the cell (thanks
   to Dmitry Frank, a.k.a. dimonomid);
 - indicate preview created with %q with "Command: cmd";
 - duplicate status bar error in dialog that reports sourcing error.  Will need
   to get rid of errors on status bar later.

Performance:
 - improved performance of mime-type detection when using libmagic (now might be
   about seven times faster by avoiding reinitialization of the library);
 - don't force file list reload after `:!` and rely on change detection.  This
   should result in somewhat better performance (thanks to opennota).

Documentation:
 - documented more details about 'vicmd' and 'vixcmd' options (thanks to
   Sebastian Cyprych).

Vim-plugin:
 - disabled spell checking of vifm files in Vim except for comments.

Only on Windows:
 - fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.

Important fixes:
 - fixed consuming 100% of CPU on certain pattern of running background
   processes (thanks to petRUShka);
 - fixed turning quickview into explore view when preview command doesn't
   contain macros.  Was broken since 0.8;
 - fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea);
 - fixed cloning of files like `.name` to produce `.name(1)` instead of
   `(1).name` (thanks to filterfalse);
 - fixed directory size in status line (patch by Dmitry Frank, a.k.a. dimonomid);
 - fixed CWD of the process not matching current view after vifm picked up
   change in file system (patch by Daniel Mueller);
 - fixed :normal command resetting selection (thanks to filterfalse);
 - fixed stopping of put operation after copying symbolic link that's broken on
   destination (thanks to filterfalse);
 - fixed a "race" with file system when we could load outdated file list and
   thus miss some file system updates.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

January 22, 2018
================

vifm v0.9.1 beta
----------------

This version adds to the list of ways for viewing files by introducing
miller columns view and transposed ls-like view (table view).  Other
developments are related to integration between builtin features as well as
with external applications.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - introduced file view mode known as miller columns or cascading lists;
 - added ability to transpose ls-like view to make it fill by columns;
 - more natural behaviour of movement keys in ls-like view;
 - new `--remote-expr` command-line option can be used to query state of
   running instances;
 - extended retry/ignore/abort query to all file operations;
 - more control over highlight groups via `:highlight` suitable for
   interactive changes;
 - mostly eliminated the need for repeating ga/gA commands through automatic
   size recalculation.

More detailed list of changes.

File operations:
 - added retry/ignore/abort prompt for file copying and directory/file/symlink
   creation when 'syscalls' is on (thanks to einhander);
 - better detection of write errors on file copying.  The error was reported,
   but it wasn't treated as a hard error in a specific case related to caching.

Command-line mode:
 - added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O
   (patch by Dmitry Frank, a.k.a. dimonomid);
 - added ability to remove filename-specific highlighting rules with
   `:highlight clear {pattern}` (thanks to aleksejrs);
 - changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to
   rbong);
 - made :siblnext and :siblprev commands respect dot and name filters;
 - made :siblnext and :siblprev accept [count] range (thanks to filterfalse);
 - made :tree pick up list of files from custom view (thanks to filterfalse);
 - made :highlight update file-specific group on exact match of the pattern
   instead of appending new rule (thanks to aleksejrs);
 - remove empty directories which are specified in 'trashdir' with %r and/or %u
   automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).

:set command and options:
 - added "inode" sorting key, which sorts entries by inode number (thanks to
   eco0414);
 - added 'millerview' option that enables cascading columns interface for the
   view (thanks to sudo-nice);
 - added 'milleroptions' option that configures miller view;
 - added 'lsoptions' option that allows to get transposed grid in ls-like view
   (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added 'previewprg' option, which can be used to override :fileviewer commands
   either temporarily or permanently (thanks to svenn71);
 - added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "u" flag to the 'tuioptions' option.  It enables use of Unicode
   characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "foldsubkeys" value to the 'suggestoptions' option.  It folds multiple
   suggestions with common prefix into one entry (thanks to AndreaHasani).

Normal and visual modes:
 - added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext
   with and without wrapping correspondingly (thanks to filterfalse);
 - do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view;
 - H/M/L keys in ls-like view now account for columns;
 - instead of invalidating directory size previously calculated via ga/gA on
   detecting changes in the directory recalculate its size and propagate update
   through its parents (thanks to filterfalse).

Macros:
 - added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for
   %-, which conflicts with alignment specification and requires explicit width
   specifier (%0-) (thanks to Marcos Cruz).

Scripting:
 - added term() builtin function, which differs from system() only by its
   ability to run interactive applications without confusing vifm's interactions
   with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added v:count and v:count1 builtin variables.  They are assigned to count
   passed to : command;
 - don't trigger DirEnter event with previous directory on startup when list of
   files is specified on stdin (thanks to filterfalse).

Invocation:
 - added `--remote-expr` command-line option, which gives ability to query state
   of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).

Completion:
 - added completion of filename-specific highlight groups for :highlight
   command.

Color schemes:
 - added AuxWin highlight group for highlighting auxiliary parts of windows.

TUI (Text User Interface):
 - extend width of the cursor in ls-like view to the width of the cell (thanks
   to Dmitry Frank, a.k.a. dimonomid);
 - indicate preview created with %q with "Command: cmd";
 - duplicate status bar error in dialog that reports sourcing error.  Will need
   to get rid of errors on status bar later.

Performance:
 - improved performance of mime-type detection when using libmagic (now might be
   about seven times faster by avoiding reinitialization of the library);
 - don't force file list reload after `:!` and rely on change detection.  This
   should result in somewhat better performance (thanks to opennota).

Documentation:
 - documented more details about 'vicmd' and 'vixcmd' options (thanks to
   Sebastian Cyprych).

Vim-plugin:
 - disabled spell checking of vifm files in Vim except for comments.

Only on Windows:
 - fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.

Important fixes:
 - fixed consuming 100% of CPU on certain pattern of running background
   processes (thanks to petRUShka);
 - fixed turning quickview into explore view when preview command doesn't
   contain macros.  Was broken since 0.8;
 - fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea);
 - fixed cloning of files like `.name` to produce `.name(1)` instead of
   `(1).name` (thanks to filterfalse);
 - fixed directory size in status line (patch by Dmitry Frank, a.k.a. dimonomid);
 - fixed CWD of the process not matching current view after vifm picked up
   change in file system (patch by Daniel Mueller);
 - fixed :normal command resetting selection (thanks to filterfalse);
 - fixed stopping of put operation after copying symbolic link that's broken on
   destination (thanks to filterfalse);
 - fixed a "race" with file system when we could load outdated file list and
   thus miss some file system updates.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 18, 2017
=============

vifm v0.9
---------

New version brings two new ways of viewing and processing file lists, namely
tree-view and directory-comparison.  As usual, previously existing facilities
were extended and improved to become more useful.

Thanks to everyone who tried out the beta, especially filterfalse.

Main changes:
 - introduced tree-like representation of files;
 - added directory comparison facilities;
 - added ability to restore last navigation menu;
 - background operations and programs can now be cancelled;
 - dismissed error output of external programs can now be queried;
 - added shell completion for bash and zsh;
 - now it's possible to configure mappings in dialogs.

More detailed list of changes.

Packaging:
 - Removed -Werror in tests from non-developer builds.

Command-line mode:
 - added :tree command that converts current view into a tree (thanks to
   filterfalse and Kornel);
 - added :dmap, :dnoremap and :dunmap commands to configure mappings in dialogs
   (thanks to Sassan Haradji, a.k.a. sassanh);
 - added "tree" parameter to :sync! that enables synchronization of tree view
   (thanks to filterfalse);
 - added :compare command to perform comparison in one or two directory trees
   (thanks to anonymous on SourceForge discussion forum and aleksejrs);
 - added :copen command to restore last menu that supports navigation (thanks to
   Sassan Haradji, a.k.a. sassanh);
 - added :screen! form that enables terminal multiplexers support (instead of
   toggling it as :screen does) (thanks to Marcos Cruz);
 - added :siblnext and :siblprev commands.  They change directory to next or
   previous sibling directories of current path (in global sorting order of
   current pane) (thanks to sudo-nice);
 - made :put, :touch and :mkdir accept [line] range, which can be used to
   specify target position in tree-view (thanks to filterfalse);
 - accept paths in :touch, not just file names (thanks to filterfalse);
 - disallow applying :chmod on ".." entry;
 - disallow selecting ".." entry with :select command;
 - expand macros in `:[un]select !{command}` (thanks to Michael Corvin).


Macros:
 - added %Iu and %IU macros, which are %u and %U equivalents, but work better if
   external command is interactive and changes terminal state;
 - added %q macro that redirects command output into quick view (thanks to
   svenn71).

:set command and options:
 - added 'dotfiles' (local) option, which exposes dot files filter as an option
   (thanks to filterfalse);
 - added 'caseoptions' option that enables more fine-grained control over case
   sensitivity (thanks to Alexandru Geana, a.k.a. alegen);
 - added 'sizefmt' option that configures formatting of human-friendly size
   (thanks to sudo-nice);
 - added %f 'statusline' macro that inserts relative path of the entry, which
   might be useful for non-regular views (thanks to filterfalse);
 - added %D 'statusline' macro that displays path of the other pane in
   single-pane layout (thanks to sudo-nice);
 - added %T 'statusline' macro that displays symbolic link target (thanks to
   sudo-nice);
 - added %a 'statusline' macro that displays amount of free space available at
   current partition (thanks to sudo-nice);
 - consider trailing slash for directories or symbolic links that point to
   directories in 'classify' patterns by file name (e.g., this works now:
   `[::*/::]`);
 - better handling of setting 'fillchars' to incorrect or excessive value.

Normal and visual modes:
 - added [d and ]d shortcuts to navigate to previous/next directory entry
   (thanks to filterfalse);
 - added [s and ]s shortcuts to navigate to previous/next selected entry
   (thanks to filterfalse);
 - added [z and ]z shortcuts to navigate to first/last sibling in a tree
   (thanks to filterfalse);
 - added zj and zk shortcuts to navigate to next/previous directory sibling in a
   tree (thanks to filterfalse);
 - added [c and ]c shortcuts to navigate to previous/next mismatch in directory
   comparison view (thanks to filterfalse);
 - added do and dp keys to compare views for applying changes in files (thanks
   to filterfalse).

Menus and dialogs:
 - added dd key to :jobs menu, which requests cancellation of background
   operation.  Background :put, :copy, :move, :delete, size calculation with ga
   and gA as well as applications started in background can be cancelled this
   way (thanks to blurm);
 - added e key to :jobs menu that displays list of errors issues by that jobs,
   if any.  h key goes back to :jobs menu;
 - added % key to menu mode, which navigates to [count]-th percent of the list;
 - added meaning to [count] of cp shortcut, which is now processed as numerical
   argument for non-recursive `chmod` command (thanks to sudo-nice);
 - partially return progress report for menus.  Was disabled by introduction of
   null byte heuristic.

File operations:
 - enable restoring files from trash from custom views;
 - disallow moving/copying/linking files into custom view (put is forbidden, so
   makes sense to forbid these too);
 - try harder to move files by not giving up on getting permission error, which
   isn't always a reliable indication of actual permission error.  Only when
   'syscalls' is on (thanks to Marcin Kurczewski, a.k.a. rr-).

File preview:
 - view current directory on ".." for quickview/view mode if no viewer matches
   such entry (thanks to filterfalse);
 - enable cancellation of tree preview construction (thanks to filterfalse);
 - do not resolve symbolic links in directory preview (thanks to filterfalse).

Security:
 - make temporary rename files accessible only by the user (thanks to
   aleksejrs).

Performance:
 - improve performance of startup and exit by omitting file existence checks.
   The cost is possibly old files staying in the state, but it should be for
   long time (thanks to Marcin Kurczewski, a.k.a. rr-);
 - improved sorting performance in the presence of huge amount of symbolic links
   (thanks to Marcin Kurczewski, a.k.a. rr-).

Invocation:
 - don't disable preview on `--remote --select` if it doesn't hide updated pane
   (thanks to Marcin Kurczewski, a.k.a. rr-);
 - make +{num} and similar options work (actually affect cursor of the view)
   (thanks to filterfalse);
 - treat "+" option the same way as Vim (like :$) (thanks to filterfalse).

Scripting:
 - added v:servername variable, which provides access to server name of the
   running instance used by --remote feature (thanks to Marcin Kurczewski,
   a.k.a. rr-);
 - getpanetype() got new value ("tree") to indicate tree-view (thanks to
   filterfalse).

TUI (Text User Interface):
 - limited maximum height of message popup, just print how many lines we're
   skipping;
 - put hardware cursor according to current mode and cursor within it (thanks to
   Tyler Spivey);
 - display path to the conflicting file in conflict resolution dialog;
 - provide better messages on i/o errors with 'syscalls' (thanks to Behrooz).

File filtering:
 - don't move cursor off "../" before start of local filtering (thanks to
   filterfalse);
 - prevent clearing filters on zM if there were no zO preceding it (thanks to
   sudo-nice).

Color schemes:
 - added CmpMismatch highlight group for highlighting mismatched files on
   side-by-side comparison.

Integration:
 - added completion scripts for bash and zsh (patches by filterfalse);
 - escape first tilde in paths that go to the shell (thanks to Marius Schmidl);
 - resolve symbolic link for listing associated programs from desktop-files
   (thanks to filterfalse).

Vim-plugin:
 - work around :drop command being disabled in the plugin (thanks to Phil
   Runninger);
 - fixed inconsistent behaviour of :EditVifm in plugin with regard to
   "[No Name]" buffer (thanks to Phil Runninger);
 - fixed plugin in versions of Vim where :argadd without argument doesn't work
   (thanks to eco0414).

Only on Windows:
 - use <exe file location>/data/colors as global storage of color schemes on
   Windows (thanks to r44083);
 - handle terminal resize on Windows 10 (thanks to randomizedthinking);
 - properly recover from invalid/strange UNC root on Windows.  Don't end up with
   empty filelist;
 - fixed use of non-latin characters in environment variables and command-line
   options (thanks to khaoos-abominable).

Important fixes:
 - fixed redirecting stdout of background commands to /dev/null, which could be
   unwritable descriptor (thanks to c02y);
 - fixed possible data loss on moving/copying files over their own parent or
   child directories via p, P, :move, :copy, :alink and :rlink (thanks to Marius
   Schmidl);
 - fixed detection of too-small-terminal state;
 - fixed treating characters like š and ć (with low Unicode values, just above
   0x100) as functional keys on input (thanks to granderil).

Other changes:
 - changed size formatting to round from zero (matches behaviour of e.g. `ls`);
 - read error output of background commands independently of main thread
   (prevents blocking of tools which produce huge amount of output) (thanks to
   Stas Malavin);
 - no vifminfo merging if file change isn't detected.  Might result in faster
   quitting in some cases.  Not accounting for some changes is still possible
   when multiple instances quit simultaneously, but same could happen without
   this change;
 - made search consider trailing slash for directories and symbolic links that
   point to directories (thanks to filterfalse);
 - don't use :filextype in sample vifmrc for OS X, we can't tell whether
   graphical system is running (thanks to piotryordanov).

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 04, 2017
=============

vifm v0.9 beta
--------------

New version brings two new ways of viewing and processing file lists, namely
tree-view and directory-comparison.  As usual, previously existing facilities
were extended and improved to become more useful.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - introduced tree-like representation of files;
 - added directory comparison facilities;
 - added ability to restore last navigation menu;
 - background operations and programs can now be cancelled;
 - dismissed error output of external programs can now be queried;
 - added shell completion for bash and zsh;
 - now it's possible to configure mappings in dialogs.

More detailed list of changes.

Packaging:
 - Removed -Werror in tests from non-developer builds.

Command-line mode:
 - added :tree command that converts current view into a tree (thanks to
   filterfalse and Kornel);
 - added :dmap, :dnoremap and :dunmap commands to configure mappings in dialogs
   (thanks to Sassan Haradji, a.k.a. sassanh);
 - added "tree" parameter to :sync! that enables synchronization of tree view
   (thanks to filterfalse);
 - added :compare command to perform comparison in one or two directory trees
   (thanks to anonymous on SourceForge discussion forum and aleksejrs);
 - added :copen command to restore last menu that supports navigation (thanks to
   Sassan Haradji, a.k.a. sassanh);
 - added :screen! form that enables terminal multiplexers support (instead of
   toggling it as :screen does) (thanks to Marcos Cruz);
 - added :siblnext and :siblprev commands.  They change directory to next or
   previous sibling directories of current path (in global sorting order of
   current pane) (thanks to sudo-nice);
 - made :put, :touch and :mkdir accept [line] range, which can be used to
   specify target position in tree-view (thanks to filterfalse);
 - accept paths in :touch, not just file names (thanks to filterfalse);
 - disallow applying :chmod on ".." entry;
 - disallow selecting ".." entry with :select command.

Macros:
 - added %Iu and %IU macros, which are %u and %U equivalents, but work better if
   external command is interactive and changes terminal state;
 - added %q macro that redirects command output into quick view (thanks to
   svenn71).

:set command and options:
 - added 'dotfiles' (local) option, which exposes dot files filter as an option
   (thanks to filterfalse);
 - added 'caseoptions' option that enables more fine-grained control over case
   sensitivity (thanks to Alexandru Geana, a.k.a. alegen);
 - added 'sizefmt' option that configures formatting of human-friendly size
   (thanks to sudo-nice);
 - added %f 'statusline' macro that inserts relative path of the entry, which
   might be useful for non-regular views (thanks to filterfalse);
 - added %D 'statusline' macro that displays path of the other pane in
   single-pane layout (thanks to sudo-nice);
 - added %T 'statusline' macro that displays symbolic link target (thanks to
   sudo-nice);
 - added %a 'statusline' macro that displays amount of free space available at
   current partition (thanks to sudo-nice);
 - consider trailing slash for directories or symbolic links that point to
   directories in 'classify' patterns by file name (e.g., this works now:
   `[::*/::]`);
 - better handling of setting 'fillchars' to incorrect or excessive value.

Normal and visual modes:
 - added [d and ]d shortcuts to navigate to previous/next directory entry
   (thanks to filterfalse);
 - added [s and ]s shortcuts to navigate to previous/next selected entry
   (thanks to filterfalse);
 - added [z and ]z shortcuts to navigate to first/last sibling in a tree
   (thanks to filterfalse);
 - added zj and zk shortcuts to navigate to next/previous directory sibling in a
   tree (thanks to filterfalse);
 - added [c and ]c shortcuts to navigate to previous/next mismatch in directory
   comparison view (thanks to filterfalse);
 - added do and dp keys to compare views for applying changes in files (thanks
   to filterfalse).

Menus and dialogs:
 - added dd key to :jobs menu, which requests cancellation of background
   operation.  Background :put, :copy, :move, :delete, size calculation with ga
   and gA as well as applications started in background can be cancelled this
   way (thanks to blurm);
 - added e key to :jobs menu that displays list of errors issues by that jobs,
   if any.  h key goes back to :jobs menu;
 - added % key to menu mode, which navigates to [count]-th percent of the list;
 - added meaning to [count] of cp shortcut, which is now processed as numerical
   argument for non-recursive `chmod` command (thanks to sudo-nice);
 - partially return progress report for menus.  Was disabled by introduction of
   null byte heuristic.

File operations:
 - enable restoring files from trash from custom views;
 - disallow moving/copying/linking files into custom view (put is forbidden, so
   makes sense to forbid these too);
 - try harder to move files by not giving up on getting permission error, which
   isn't always a reliable indication of actual permission error.  Only when
   'syscalls' is on (thanks to Marcin Kurczewski, a.k.a. rr-).

File preview:
 - view current directory on ".." for quickview/view mode (thanks to
   filterfalse);
 - enable cancellation of tree preview construction (thanks to filterfalse);
 - do not resolve symbolic links in directory preview (thanks to filterfalse).

Security:
 - make temporary rename files accessible only by the user (thanks to
   aleksejrs).

Performance:
 - improve performance of startup and exit by omitting file existence checks.
   The cost is possibly old files staying in the state, but it should be for
   long time (thanks to Marcin Kurczewski, a.k.a. rr-);
 - improved sorting performance in the presence of huge amount of symbolic links
   (thanks to Marcin Kurczewski, a.k.a. rr-).

Invocation:
 - don't disable preview on `--remote --select` if it doesn't hide updated pane
   (thanks to Marcin Kurczewski, a.k.a. rr-);
 - make +{num} and similar options work (actually affect cursor of the view)
   (thanks to filterfalse);
 - treat "+" option the same way as Vim (like :$) (thanks to filterfalse).

Scripting:
 - added v:servername variable, which provides access to server name of the
   running instance used by --remote feature (thanks to Marcin Kurczewski,
   a.k.a. rr-);
 - getpanetype() got new value ("tree") to indicate tree-view (thanks to
   filterfalse).

TUI (Text User Interface):
 - limited maximum height of message popup, just print how many lines we're
   skipping;
 - put hardware cursor according to current mode and cursor within it (thanks to
   Tyler Spivey);
 - display path to the conflicting file in conflict resolution dialog;
 - provide better messages on i/o errors with 'syscalls' (thanks to Behrooz).

File filtering:
 - don't move cursor off "../" before start of local filtering (thanks to
   filterfalse);
 - prevent clearing filters on zM if there were no zO preceding it (thanks to
   sudo-nice).

Color schemes:
 - added CmpMismatch highlight group for highlighting mismatched files on
   side-by-side comparison.

Integration:
 - added completion scripts for bash and zsh (patches by filterfalse);
 - escape first tilde in paths that go to the shell (thanks to Marius Schmidl);
 - resolve symbolic link for listing associated programs from desktop-files
   (thanks to filterfalse).

Vim-plugin:
 - work around :drop command being disabled in the plugin (thanks to Phil
   Runninger);
 - fixed inconsistent behaviour of :EditVifm in plugin with regard to
   "[No Name]" buffer (thanks to Phil Runninger);
 - fixed plugin in versions of Vim where :argadd without argument doesn't work
   (thanks to eco0414).

Only on Windows:
 - use <exe file location>/data/colors as global storage of color schemes on
   Windows (thanks to r44083);
 - handle terminal resize on Windows 10 (thanks to randomizedthinking);
 - properly recover from invalid/strange UNC root on Windows.  Don't end up with
   empty filelist;
 - fixed use of non-latin characters in environment variables and command-line
   options (thanks to khaoos-abominable).

Important fixes:
 - fixed redirecting stdout of background commands to /dev/null, which could be
   unwritable descriptor (thanks to c02y);
 - fixed possible data loss on moving/copying files over their own parent or
   child directories via p, P, :move, :copy, :alink and :rlink (thanks to Marius
   Schmidl);
 - fixed detection of too-small-terminal state;
 - fixed treating characters like š and ć (with low Unicode values, just above
   0x100) as functional keys on input (thanks to granderil).

Other changes:
 - changed size formatting to round from zero (matches behaviour of e.g. `ls`);
 - read error output of background commands independently of main thread
   (prevents blocking of tools which produce huge amount of output) (thanks to
   Stas Malavin);
 - no vifminfo merging if file change isn't detected.  Might result in faster
   quitting in some cases.  Not accounting for some changes is still possible
   when multiple instances quit simultaneously, but same could happen without
   this change;
 - made search consider trailing slash for directories and symbolic links that
   point to directories (thanks to filterfalse).

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 16, 2016
=============

vifm v0.8.2
-----------

This release brings a bit of user-friendliness in form of key suggestions and
various descriptions provided in the interface.  Matching of files has been
extended in many ways and become significantly more powerful than before.
Menu mode also got several enhancements.

Thanks to everyone who found time to try the beta.

Main changes:
 - key suggestions in the interface on ambiguous input (e.g. "g");
 - helpful shortcuts for dialogs (for sort dialog in particular);
 - key descriptions in :map menus and %z macro for 'statusline' to display some
   tips;
 - description of all :commands, 'options' and their values for new multiline
   version of wildmenu;
 - ANDing, ORing and negating patterns for matching files and new mime-type
   matcher;
 - file prefixes and suffixes can now be multi-byte, which with extended
   'classify' option allows specifying "icons" via custom fonts;
 - search result highlighting, enabled completion and a way to export the list
   for menus;
 - an indication of pattern correctness and match state for interactive prompts.
 - :select and :unselect commands to perform automatic file selection (possibly
   by using output of external application);
 - cancellation (handling of Ctrl-C) for quick view and view mode loading.

Not sure if it was noticed, but HTTPS protocol is up for related sites since
Let's Encrypt started their beta.  Everything works fine, so all the links were
updated to https protocol.

If you ever wondered which keys are builtin for the command (normal) mode of
Vifm, this cheatsheet will show you: https://next.vifm.info/cheatsheets.shtml

In case you're into using neovim, you might be interesting into checking out
alternative Vifm plugin for it: https://github.com/vifm/neovim-vifm

More detailed list of changes.

Core:
 - added heuristic that uses null byte as separator for file lists if there is
   at least one such byte, otherwise normal line separators are used.  This
   affects :[un]select, `vifm -`, %u, %U, %m and %M (thanks to filterfalse);
 - changed order of initialization to perform autocommands before startup
   commands on launch.

Normal and visual modes:
 - changed ga/gA effect on parent entry (..) to calculate size of current
   directory (thanks to aleksejrs).

:set command and options:
 - added 'wildstyle' option to control the way wild menu is displayed.  Enables
   displaying it as a menu with one item per line (thanks to santhoshr and
   octos);
 - added 'suggestoptions' option to control displaying of suggestions;
 - added support of patterns to 'classify' option, so that files can now be
   decorated based on their names (thanks to elricbk);
 - added 'cvoptions' option to control when entering/leaving custom views is
   considered to be equal to entering/leaving directories (thanks to
   filterfalse);
 - added "target" sorting key, which sorts files by symbolic link targets
   (thanks to Marcos Cruz);
 - added %z 'statusline' macro that inserts text of a short tip picked at random
   (thanks to qinghao, a.k.a. haobug);
 - changed type of 'confirm' option.  Now it's a set that picks which operations
   should be confirmed (thanks to Losiara and mvucBmM0);
 - allow suffixes and prefixes in 'classify' to be of up to eight characters in
   length (thanks to elricbk).

Command-line mode:
 - added "filelist" parameter to :sync! that enables synchronization of custom
   view (thanks to filterfalse);
 - added :select and :unselect commands (thanks to filterfalse, Russell Urquhart
   and Marcos Cruz);
 - added negation to patterns with explicitly specified type (surrounded by {}
   or //).  Put exclamation mark to invert pattern match (thanks to Marcos
   Cruz);
 - added mime type patterns ([!]<list-of-globs>) (thanks to Ross Hadden, a.k.a.
   rosshadden);
 - added pattern ANDing.  Just list decorated patterns one after another and
   such composite pattern will much when each of them matches (thanks to
   filterfalse);
 - added pattern ORing for :file[x]type and :fileviewer commands implemented as
   a comma-separated list (thanks to filterfalse);
 - expand environment variables for :edit (thanks to filterfalse);
 - don't print just table header on `:cabbr something`, print message that no
   matches found instead;
 - use original (before custom view) cursor position on :sync! in custom views
   (thanks to filterfalse).

File preview:
 - added cancellation (handling of Ctrl-C) for quick view and view mode loading
   (thanks to kalterfive);
 - skip UTF-8 BOM for file preview.

File list:
 - never add parent entry (..) to very custom view (%U) (thanks to filterfalse);
 - silently ignore tries to remove parent entry (..) (thanks to aleksejrs);
 - automatically update custom view entries on rename of their parent directory
   in the same custom view.

Completion:
 - added completion of :wincmd argument;
 - do not reset completion on terminal resize;
 - some corrections of when completion happens for :find and :grep.

Scripting:
 - added chooseopt() builtin function that retrieves various parameters of file
   choosing (thanks to Von Welch).

Menus and dialogs:
 - added highlighting of search matches in menus;
 - added :noh[lsearch] command to menu mode;
 - added quick shortcuts to dialogs (patch by oo-);
 - added description of builtin keys to :map menus;
 - added :write command to menus, that writes all menu lines into specified file
   (thanks to gtors);
 - a bit better delete confirmation messages with number of files to be deleted;
 - avoid displaying useless search messages about incorrect pattern during
   interactive search in menus (those that user can't see, but that are shown in
   :messages);
 - enabled wildmenu for menus.

TUI (Text User Interface):
 - added indication of wrong pattern and absence of matches to command-prompt
   for interactive search/filtering.

Angle bracket notation:
 - display <c-h> as <bs> only at the beginning of key sequence.

Color schemes:
 - added SuggestBox highlight group for key suggestion box.

Vim-plugin:
 - added support for matchit to filetype plugin (patch by filterfalse);
 - better terminal buffer title for plugin in neovim (thanks to
   randomizedthinking);
 - improved syntax highlighting of patterns.

Only on Windows:
 - fixed escaping for cmd.exe again, for :edit and external command invocations
   (thanks to Reva Revadigar);
 - fixed querying file information on 64-bit Windows (thanks to santhoshr);
 - fixed possible crash on displaying job bar (e.g. after :empty) (thanks to
   Reva Revadigar);
 - fixed UTF8 <-> UTF16 conversion, which didn't always work (on surrogate
   characters it seems) (thanks to Reva Revadigar);
 - fixed possible unexpectedly long timeouts when waiting for a key (due to
   limitation of pdcurses);
 - fixed displaying of wide (CJK) characters in pdcurses (thanks to Reva
   Revadigar);
 - fixed capturing output of external applications when 'shell' is "cmd".  Was
   broken since v0.8 in an attempt to make cmd work better with Unicode (but its
   /U flag affects only input and output streams).

Packaging:
 - fixed functioning on architectures on which `char` is unsigned by default
   (thanks to Ondrej Novy, a.k.a. onovy).

Important fixes:
 - fixed hanging on sudden terminal loss (regression) (thanks to aleksejrs);
 - fixed using original file names after a prompt for new destination name
   (thanks to rbong);
 - fixed unconditional resetting of executable permission when using cp dialog
   (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - fixed remote feature on cygwin (thanks to Cosmin Popescu, a.k.a.
   cosminadrianpopescu);
 - fixed epic bug in processing selectors followed by other commands in a
   mapping.  Command which accepted selector was called after tail of sequence
   is processed.  Such case isn't very likely, so it probably didn't affect
   anyone.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 02, 2016
=============

vifm v0.8.2 beta testing has started
------------------------------------

This release brings a bit of user-friendliness in form of key suggestions and
various descriptions provided in the interface.  Matching of files has been
extended in many ways and become significantly more powerful than before.
Menu mode also got several enhancements.

Main changes:
 - key suggestions in the interface on ambiguous input (e.g. "g");
 - helpful shortcuts for dialogs (for sort dialog in particular);
 - key descriptions in :map menus and %z macro for 'statusline' to display some
   tips;
 - description of all :commands, 'options' and their values for new multiline
   version of wildmenu;
 - ANDing, ORing and negating patterns for matching files and new mime-type
   matcher;
 - file prefixes and suffixes can now be multi-byte, which with extended
   'classify' option allows specifying "icons" via custom fonts;
 - search result highlighting, enabled completion and a way to export the list
   for menus;
 - an indication of pattern correctness and match state for interactive prompts.
 - :select and :unselect commands to perform automatic file selection (possibly
   by using output of external application);
 - cancellation (handling of Ctrl-C) for quick view and view mode loading.

Not sure if it was noticed, but HTTPS protocol is up for related sites since
Let's Encrypt started their beta.  Everything works fine, so all the links were
updated to https protocol.

If you ever wondered which keys are builtin for the command (normal) mode of
Vifm, this cheatsheet will show you: https://next.vifm.info/cheatsheets.shtml

In case you're into using neovim, you might be interesting into checking out
alternative Vifm plugin for it: https://github.com/vifm/neovim-vifm

More detailed list of changes.

Core:
 - added heuristic that uses null byte as separator for file lists if there is
   at least one such byte, otherwise normal line separators are used.  This
   affects :[un]select, `vifm -`, %u, %U, %m and %M (thanks to filterfalse);
 - changed order of initialization to perform autocommands before startup
   commands on launch.

Normal and visual modes:
 - changed ga/gA effect on parent entry (..) to calculate size of current
   directory (thanks to aleksejrs).

:set command and options:
 - added 'wildstyle' option to control the way wild menu is displayed.  Enables
   displaying it as a menu with one item per line (thanks to santhoshr and
   octos);
 - added 'suggestoptions' option to control displaying of suggestions;
 - added support of patterns to 'classify' option, so that files can now be
   decorated based on their names (thanks to elricbk);
 - added 'cvoptions' option to control when entering/leaving custom views is
   considered to be equal to entering/leaving directories (thanks to
   filterfalse);
 - added "target" sorting key, which sorts files by symbolic link targets
   (thanks to Marcos Cruz);
 - added %z 'statusline' macro that inserts text of a short tip picked at random
   (thanks to qinghao, a.k.a. haobug);
 - changed type of 'confirm' option.  Now it's a set that picks which operations
   should be confirmed (thanks to Losiara and mvucBmM0);
 - allow suffixes and prefixes in 'classify' to be of up to eight characters in
   length (thanks to elricbk).

Command-line mode:
 - added "filelist" parameter to :sync! that enables synchronization of custom
   view (thanks to filterfalse);
 - added :select and :unselect commands (thanks to filterfalse, Russell Urquhart
   and Marcos Cruz);
 - added negation to patterns with explicitly specified type (surrounded by {}
   or //).  Put exclamation mark to invert pattern match (thanks to Marcos
   Cruz);
 - added mime type patterns ([!]<list-of-globs>) (thanks to Ross Hadden, a.k.a.
   rosshadden);
 - added pattern ANDing.  Just list decorated patterns one after another and
   such composite pattern will much when each of them matches (thanks to
   filterfalse);
 - added pattern ORing for :file[x]type and :fileviewer commands implemented as
   a comma-separated list (thanks to filterfalse);
 - expand environment variables for :edit (thanks to filterfalse);
 - don't print just table header on `:cabbr something`, print message that no
   matches found instead;
 - use original (before custom view) cursor position on :sync! in custom views
   (thanks to filterfalse).

File preview:
 - added cancellation (handling of Ctrl-C) for quick view and view mode loading
   (thanks to kalterfive);
 - skip UTF-8 BOM for file preview.

File list:
 - never add parent entry (..) to very custom view (%U) (thanks to filterfalse);
 - silently ignore tries to remove parent entry (..) (thanks to aleksejrs);
 - automatically update custom view entries on rename of their parent directory
   in the same custom view.

Completion:
 - added completion of :wincmd argument;
 - do not reset completion on terminal resize;
 - some corrections of when completion happens for :find and :grep.

Scripting:
 - added chooseopt() builtin function that retrieves various parameters of file
   choosing (thanks to Von Welch).

Menus and dialogs:
 - added highlighting of search matches in menus;
 - added :noh[lsearch] command to menu mode;
 - added quick shortcuts to dialogs (patch by oo-);
 - added description of builtin keys to :map menus;
 - added :write command to menus, that writes all menu lines into specified file
   (thanks to gtors);
 - a bit better delete confirmation messages with number of files to be deleted;
 - avoid displaying useless search messages about incorrect pattern during
   interactive search in menus (those that user can't see, but that are shown in
   :messages);
 - enabled wildmenu for menus.

TUI (Text User Interface):
 - added indication of wrong pattern and absence of matches to command-prompt
   for interactive search/filtering.

Angle bracket notation:
 - display <c-h> as <bs> only at the beginning of key sequence.

Color schemes:
 - added SuggestBox highlight group for key suggestion box.

Vim-plugin:
 - better terminal buffer title for plugin in neovim (thanks to
   randomizedthinking);
 - improved syntax highlighting of patterns.

Only on Windows:
 - fixed escaping for cmd.exe again, for :edit and external command invocations
   (thanks to Reva Revadigar);
 - fixed querying file information on 64-bit Windows (thanks to santhoshr);
 - fixed possible crash on displaying job bar (e.g. after :empty) (thanks to
   Reva Revadigar);
 - fixed UTF8 <-> UTF16 conversion, which didn't always work (on surrogate
   characters it seems) (thanks to Reva Revadigar);
 - fixed possible unexpectedly long timeouts when waiting for a key (due to
   limitation of pdcurses);
 - fixed displaying of wide (CJK) characters in pdcurses (thanks to Reva
   Revadigar);
 - fixed capturing output of external applications when 'shell' is "cmd".  Was
   broken since v0.8 in an attempt to make cmd work better with Unicode (but its
   /U flag affects only input and output streams).

Packaging:
 - fixed functioning on architectures on which `char` is unsigned by default
   (thanks to Ondrej Novy, a.k.a. onovy).

Important fixes:
 - fixed hanging on sudden terminal loss (regression) (thanks to aleksejrs);
 - fixed using original file names after a prompt for new destination name
   (thanks to rbong);
 - fixed unconditional resetting of executable permission when using cp dialog
   (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - fixed remote feature on cygwin (thanks to Cosmin Popescu, a.k.a.
   cosminadrianpopescu);
 - fixed epic bug in processing selectors followed by other commands in a
   mapping.  Command which accepted selector was called after tail of sequence
   is processed.  Such case isn't very likely, so it probably didn't affect
   anyone.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

February 10, 2016
=================

vifm v0.8.1a
------------

This is a bugfix release to primarily address messed up single-executable
builds for Windows.  Tab completion doesn't work there and can cause crashes.
Also 64-bit build somehow contains 32-bit executables.  Thanks to Reva Revadigar
for reporting the issue.

On the bright side, this gives a chance for fixing bugs discovered after the
release.

There was also time to add some functional changes, which also made it into this
release:
 - added c key to menus that inserts parts of menu line into command-line
   (thanks to filterfalse);
 - added { and } keys to normal and visual modes.  They act similar to ( and),
   but always consider whether entry is a file or directory (thanks to octos);
 - added --disable-build-timestamp option to configure script to perform
   reproducible build (thanks to Hendrik Jaeger, a.k.a. henk);
 - apply local filter on picking element of `:history filter` menu;
 - handle register specified for gs normal mode command.  Select files listed
   in that register (thanks to filterfalse);
 - be consistent with regard to when local state is changed and do not reset
   neither local options nor local filter on entering/leaving custom view
   (thanks to filterfalse);
 - disallow adding duplicated filetype/fileviewer entries (just ignore them
   as they wouldn't be used due to order priority anyway).

Other notable fixes:
 - fixed storing filetypes in vifminfo, which could create duplicates (thanks to
   aleksejrs);
 - fixed --with-dyn-x11 configuration option, which failed to enable dynamic
   use of the library (thanks to Badalisc and Hendrik Jaeger, a.k.a. henk);
 - fixed using plugin in neovim, which has broken `system()` and :! commands
   (thanks to Artur Shaik, a.k.a. artur-shaik).

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

January 17, 2016
================

vifm v0.8.1
-----------

New minor version delivers primarily various small improvements of different
kinds.  There is also improvement of navigation via named bookmarks (or tags),
which can ease keeping track of what is where, and an ability to apply
settings to specific directories or sub-trees (via combination of autocommands
and local options).

Thanks to everyone who was reporting issues during beta period.

Main changes:
 - added local options, which work until directory change;
 - added named bookmarks (paths are associated with tags);
 - added autocommands (with DirEnter event);
 - added ability to sort by regexp-extracted part of file name;
 - added builtin directory preview (similar to `tree`);
 - added a way to communicate menu contents to Vim quickfix;
 - added "more" mode that is used to handle status bar content that doesn't fit
   on the screen;
 - IPC got new (safe) implementation with listing/targeting of active instances,
   it's enabled by default again;
 - updating local view settings from vifmrc now affects both panes (:windo is
   not necessary);
 - more predictive cursor updates on directory reload;
 - improvements related to expression and command parsing.

More detailed list of changes.

Command-line mode:
 - added :setl[ocal] and :setg[lobal] commands to manage values of local options
   that are specific to current directory and are reset on directory change,
   similar to local options of Vim;
 - added :pu[t] command that inserts files into current directory (thanks to
   mvucBmM0);
 - added :winc[md] command-line command (thanks to fogine);
 - added exclamation mark to :shell to suppress spawning new teminal multiplexer
   pane (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu).

:set command and options:
 - added :set foo+=bar syntax for string options (append value);
 - added 'deleteprg' option, which specifies program to run on files that are
   permanently removed;
 - added 'dirsize' option to control how size of directories is displayed in
   file views.  This enables one to see number of files in a directory rather
   than its size (thanks to Martin Fischer);
 - added optional %u and %U macros to 'findprg', 'grepprg', and 'locateprg' that
   allow immediate redirection of command output into custom view without
   opening a menu (thanks to filterfalse);
 - added 'iooptions' option to configure file system operations.  Contains only
   "fastfilecloning" for btrfs so far (thanks to aleksejrs);
 - added special treatment for "*" as value of 'slowfs', which might be useful
   in case of very slow handling of requests to mounts enumeration (patch by
   Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added handling of "%u" in trash specification on *nix, which is replaced with
   real user ID (thanks to Regis);
 - allow 'shell' to specify a shell argument on *nix (thanks to loongw);
 - added 'sortgroups' option and "groups" sorting key, which allow sorting by
   parts of file names (thanks to aleksejrs);
 - added 'title' option to control whether title of terminal should be set.
   Enabled by default if old title can be restored (thanks to Svyatoslav Mishyn,
   a.k.a. juef);
 - make "p" in 'tuioptions' affect padding in quick view and view mode;
 - changed 'fusehome' default from temporary directory to data directory (that
   is $XDG_DATA_HOME/.local/share/fuse/ or $VIFM/fuse/ depending on which parent
   directory exists, the second one exists by definition, but first might not)
   (thanks to aleksejrs and to Hendrik Jaeger, a.k.a. henk);
 - changed default value of 'trashdir' on *nix again, this time to
   "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash".  This way it's safer for
   privacy, although using %r is not very safe in general (thanks to Regis).

Configuration:
 - make :set, :filter and :normal zo (and alike) in vifmrc affect all views,
   thus obsoleting use of :winrun or :windo for this purpose (they still work,
   the new way is a simpler and more obvious one).  This is related to commands
   executed during vifmrc processing (not those in the right-hand side of
   mappings, commands, etc.);
 - automatically create ~/.vifm/scripts containing small README file if the
   directory doesn't exist on startup (thanks to fogine).

Core:
 - added autocommands (DirEnter event and :au[tocmd] command) (thanks to
   filterfalse).

File operations:
 - added retry/ignore/abort prompt for file/directory removal when 'syscalls'
   is on (thanks to Robert Sarkozi);
 - make use of file cloning feature of btrfs when possible and enabled in
   'iooptions' (thanks to aleksejrs);
 - preserve file timestamps on copying files with 'syscalls' on (thanks to
   mvucBmM0);
 - employ inotify on GNU/Linux for more precise watching directories for
   changes;
 - copy timestamps and permissions on merging directories (thanks to willemw12).

Navigation:
 - added named bookmarks (paths are associated with tags).  This adds :bmark,
   :bmarks, :bmgo and :delbmarks command-line commands.  Also there is new
   "bmarks" value for 'vifminfo' (thanks to Schmalzhaf Stefan).

Normal and visual modes:
 - accept [count] for "h" and "gh";
 - added zr normal mode key to reset local filter (thanks to filterfalse);
 - ctrl-W | and Ctrl-W _ now can set window size to given count (thanks to
   filterfalse).

Key bindings:
 - remapping of builtin keys that are followed by selectors (e.g.
   `:nnoremap d y`) (thanks to mvucBmM0).

Color schemes:
 - changed default colorscheme to invert colors of the current line.

Documentation:
 - documented %= for 'statusline' and 'rulerformat';
 - make --select option more prominent in documentation (thanks to Svyatoslav
   Mishyn, a.k.a. juef);
 - documented difference between paths in menu with and without trailing slash
   (thanks to filterfalse).

Macros:
 - added %pc macro that splits preview command in two pices: preview command and
   clear command (thanks to Tomek K., a.k.a. TomiCode).

Menus and dialogs:
 - added B key to menus, which acts like b, but creates unsorted (very custom)
   view (thanks to filterfalse);
 - added "v" key to menu mode that loads current contents into quickfix list of
   editor (Vim compatible one is assumed) (thanks to filterfalse);
 - added handling of dd in :trashes, :trashes? and :lstrashes, which either
   deletes an item in trash or empties trash (thanks to Svyatoslav Mishyn,
   a.k.a. juef);
 - somewhat more informative error titles on issues during file operations;
 - provide conflict resolution options in a dialog rather than on the
   command-line, which is hard to read with so many options;
 - expand "~" in menus on navigation.

Packaging:
 - removed vifmrc-converter.  It's been around for four years and not needed any
   more (thanks to filterfalse);
 - removed contents of autoconf.sh, autoreconf covers what was there (there is a
   notice in that script now about it just in case) (thanks to Hendrik Jaeger,
   a.k.a. henk);
 - added --with-sanitize=basic|thread|leak option to configure script;
 - added missing script that's necessary for %s macro in GNU screen.  Was lost
   for a long time;
 - work around compilation on systems where MAX_ARG_STRLEN is defined, but
   unusable (thanks to Marcin Juszkiewicz, a.k.a. hrw, Michel Normand and
   Michael Vetter, a.k.a. jubalh);
 - put right-hand side of user-defined commands into separate scope of
   if-else-endif expressions.  This prevents affecting of regular input by
   malformed user-defined command.

Scripting:
 - added :elseif command (thanks to filterfalse);
 - added &option syntax for :let command;
 - added && and || operators to expression parser (thanks to filterfalse);
 - added getpanetype() builtin function that retrieves type of current pane
   (thanks to filterfalse);
 - added layoutis() builtin function that answers queries about current
   interface configuration (thanks to fogine);
 - added paneisat() builtin function that answers queries about current pane
   position (thanks to fogine);
 - added inline comments to allow less verbose commenting in configuration;
 - rewrote expression parser to prevent side-effects from occurring until syntax
   is checked.

TUI (Text User Interface):
 - added match numbers to search messages on status bar (patch by Cosmin
   Popescu, a.k.a. cosminadrianpopescu);
 - added dynamic view column alignment (specified by "*", just like "-" for left
   alignment) (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added "more" mode that is used to handle status bar content that doesn't fit
   on the screen (thanks to Bruce Hunsaker, a.k.a. hunsakerbn, and Svyatoslav
   Mishyn, a.k.a. juef);
 - added builtin directory preview (thanks to Damian Ariel Perticone and
   Alexandre Viau);
 - added "fileext" sorting key, which sorts files by extensions and directories
   by name (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added "nitems" sorting, which sorts by number of items in a directory (thanks
   to filterfalse);
 - added "nlinks" sorting key to display number of hard links to a file on *nix
   systems (thanks to filterfalse);
 - normalize surrounding spaces in menu and dialog titles;
 - lower minimum supported terminal width and height from 30x10 to 20x5;
 - update cursor position on file disappearing in more predictable way.  Use the
   closes file to the previously active one that still exists (thanks to
   ranousse);
 - display lower bound on item count in status bar progress messages (e.g. on
   :grep).

Important fixes:
 - assume UTF-8 sequences can be broken (thanks to Svyatoslav Mishyn, a.k.a.
   juef);
 - made setting title inside terminal multiplexers (when terminal type is
   "screen*") work;
 - check file system sensitivity on OS X (thanks to loongw);
 - fixed startup on Windows 10 (thanks to th1rdey3 and Robert Sarkozi);
 - fixed swapped absolute/relative link creation on :alink/:rlink commands
   (patch by MadMaverick9);
 - multiple fixes for custom views (thanks to filterfalse);
 - more careful treating of files with colons in their names for menus and
   custom views (thanks to aleksejrs);
 - fixed ranges for :yank, 0.8 regression (thanks to Marius Schmidl);
 - fixed crash on copy-like operations that move several files into subdirectory
   of another view (thanks to Marius Schmidl);
 - fixed creation of intermediate directories on merging directories (thanks to
   willemw12).

Vim-plugin:
 - added set of :*Vim commands to vifm run from Vim plugin, which overrule
   initial :*Vifm command behaviour (thanks to Ross Hadden, a.k.a. rosshadden);
 - changed plugin to do not depend on location of vifm.  g:vifm_home is ignored
   from now on (thanks to aleksejrs).

Only on Windows:
 - display directory size on Windows more correctly;
 - improvements in running commands with special characters and/or spaces
   (thanks to Stas Malavin).

Other changes:
 - added handling of "-" command-line argument specified in place of directory
   path as instruction to read list of files from stdin;
 - added --server-list and --server-name command-line options that enumerates
   names of currently running vifm servers and sets name of target/this instance
   respectively;
 - added optional argument for --logging parameter that specifies path to
   startup log (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - invalidate directory size (calculated via ga/gA) if noticed that directory
   was changed.  This affects all parent directories as well, way easier to see
   what needs recalculation after file moving/removal;
 - warn about --remote command being disabled at build-time (thanks to
   Svyatoslav Mishyn, a.k.a. juef);
 - do not finish argument parsing after finding --help or --version, continue
   and validate the rest of command-line (thanks to Svyatoslav Mishyn, a.k.a.
   juef);
 - display incomplete file name on rename instead of failing with error on
   Unicode conversion issues.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

January 02, 2016
================

vifm v0.8.1 beta testing has started
------------------------------------

New minor version delivers primarily various small improvements of different
kinds.  There is also improvement of navigation via named bookmarks (or tags),
which can ease keeping track of what is where, and an ability to apply
settings to specific directories or sub-trees (via combination of autocommands
and local options).

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added local options, which work until directory change;
 - added named bookmarks (paths are associated with tags);
 - added autocommands (with DirEnter event);
 - added ability to sort by regexp-extracted part of file name;
 - added builtin directory preview (similar to `tree`);
 - added a way to communicate menu contents to Vim quickfix;
 - IPC got new (safe) implementation with listing/targeting of active instances,
   it's enabled by default again;
 - updating local view settings from vifmrc now affects both panes (:windo is
   not necessary);
 - more predictive cursor updates on directory reload;
 - improvements related to expression and command parsing.

More detailed list of changes.

Command-line mode:
 - added :setl[ocal] and :setg[lobal] commands to manage values of local options
   that are specific to current directory and are reset on directory change,
   similar to local options of Vim;
 - added :pu[t] command that inserts files into current directory (thanks to
   mvucBmM0);
 - added :winc[md] command-line command (thanks to fogine);
 - added exclamation mark to :shell to suppress spawning new teminal multiplexer
   pane (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu).

:set command and options:
 - added :set foo+=bar syntax for string options (append value);
 - added 'deleteprg' option, which specifies program to run on files that are
   permanently removed;
 - added 'dirsize' option to control how size of directories is displayed in
   file views.  This enables one to see number of files in a directory rather
   than its size (thanks to Martin Fischer);
 - added optional %u and %U macros to 'findprg', 'grepprg', and 'locateprg' that
   allow immediate redirection of command output into custom view without
   opening a menu (thanks to filterfalse);
 - added 'iooptions' option to configure file system operations.  Contains only
   "fastfilecloning" for btrfs so far (thanks to aleksejrs);
 - added special treatment for "*" as value of 'slowfs', which might be useful
   in case of very slow handling of requests to mounts enumeration (patch by
   Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added handling of "%u" in trash specification on *nix, which is replaced with
   real user ID (thanks to Regis);
 - allow 'shell' to specify a shell argument on *nix (thanks to loongw);
 - added 'sortgroups' option and "groups" sorting key, which allow sorting by
   parts of file names (thanks to aleksejrs);
 - make "p" in 'tuioptions' affect padding in quick view and view mode;
 - changed 'fusehome' default from temporary directory to data directory (that
   is $XDG_DATA_HOME/.local/share/fuse/ or $VIFM/fuse/ depending on which parent
   directory exists, the second one exists by definition, but first might not)
   (thanks to aleksejrs and to Hendrik Jaeger, a.k.a. henk);
 - changed default value of 'trashdir' on *nix again, this time to
   "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash".  This way it's safer for
   privacy, although using %r is not very safe in general (thanks to Regis).

Configuration:
 - make :set, :filter and :normal zo (and alike) in vifmrc affect all views,
   thus obsoleting use of :winrun or :windo for this purpose (they still work,
   the new way is a simpler and more obvious one).  This is related to commands
   executed during vifmrc processing (not those in the right-hand side of
   mappings, commands, etc.);
 - automatically create ~/.vifm/scripts containing small README file if the
   directory doesn't exist on startup (thanks to fogine).

Core:
 - added autocommands (DirEnter event and :au[tocmd] command) (thanks to
   filterfalse).

File operations:
 - added retry/ignore/abort prompt for file/directory removal when 'syscalls'
   is on (thanks to Robert Sarkozi);
 - make use of file cloning feature of btrfs when possible and enabled in
   'iooptions' (thanks to aleksejrs);
 - preserve file timestamps on copying files with 'syscalls' on (thanks to
   mvucBmM0);
 - employ inotify on GNU/Linux for more precise watching directories for
   changes.

Navigation:
 - added named bookmarks (paths are associated with tags).  This adds :bmark,
   :bmarks, :bmgo and :delbmarks command-line commands.  Also there is new
   "bmarks" value for 'vifminfo' (thanks to Schmalzhaf Stefan).

Normal and visual modes:
 - accept [count] for "h" and "gh";
 - added zr normal mode key to reset local filter (thanks to filterfalse);
 - ctrl-W | and Ctrl-W _ now can set window size to given count (thanks to
   filterfalse).

Key bindings:
 - remapping of builtin keys that are followed by selectors (e.g.
   `:nnoremap d y`) (thanks to mvucBmM0).

Color schemes:
 - changed default colorscheme to invert colors of the current line.

Documentation:
 - documented %= for 'statusline' and 'rulerformat';
 - make --select option more prominent in documentation (thanks to Svyatoslav
   Mishyn, a.k.a. juef);
 - documented difference between paths in menu with and without trailing slash
   (thanks to filterfalse).

Macros:
 - added %pc macro that splits preview command in two pices: preview command and
   clear command (thanks to Tomek K., a.k.a. TomiCode).

Menus and dialogs:
 - added B key to menus, which acts like b, but creates unsorted (very custom)
   view (thanks to filterfalse);
 - added "v" key to menu mode that loads current contents into quickfix list of
   editor (Vim compatible one is assumed) (thanks to filterfalse);
 - added handling of dd in :trashes, :trashes? and :lstrashes, which either
   deletes an item in trash or empties trash (thanks to Svyatoslav Mishyn,
   a.k.a. juef);
 - somewhat more informative error titles on issues during file operations;
 - provide conflict resolution options in a dialog rather than on the
   command-line, which is hard to read with so many options;
 - expand "~" in menus on navigation.

Packaging:
 - removed vifmrc-converter.  It's been around for four years and not needed any
   more (thanks to filterfalse);
 - removed contents of autoconf.sh, autoreconf covers what was there (there is a
   notice in that script now about it just in case) (thanks to Hendrik Jaeger,
   a.k.a. henk);
 - added --with-sanitize=basic|thread|leak option to configure script;
 - added missing script that's necessary for %s macro in GNU screen.  Was lost
   for a long time;
 - work around compilation on systems where MAX_ARG_STRLEN is defined, but
   unusable (thanks to Marcin Juszkiewicz, a.k.a. hrw, Michel Normand and
   Michael Vetter, a.k.a. jubalh);
 - put right-hand side of user-defined commands into separate scope of
   if-else-endif expressions.  This prevents affecting of regular input by
   malformed user-defined command.

Scripting:
 - added :elseif command (thanks to filterfalse);
 - added &option syntax for :let command;
 - added && and || operators to expression parser (thanks to filterfalse);
 - added getpanetype() builtin function that retrieves type of current pane
   (thanks to filterfalse);
 - added layoutis() builtin function that answers queries about current
   interface configuration (thanks to fogine);
 - added paneisat() builtin function that answers queries about current pane
   position (thanks to fogine);
 - added inline comments to allow less verbose commenting in configuration;
 - rewrote expression parser to prevent side-effects from occurring until syntax
   is checked.

TUI (Text User Interface):
 - added match numbers to search messages on status bar (patch by Cosmin
   Popescu, a.k.a. cosminadrianpopescu);
 - added dynamic view column alignment (specified by "*", just like "-" for left
   alignment) (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added "more" mode that is used to handle status bar content that doesn't fit
   on the screen (thanks to Bruce Hunsaker, a.k.a. hunsakerbn, and Svyatoslav
   Mishyn, a.k.a. juef);
 - added builtin directory preview (thanks to Damian Ariel Perticone and
   Alexandre Viau);
 - added "fileext" sorting key, which sorts files by extensions and directories
   by name (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - added "nitems" sorting, which sorts by number of items in a directory (thanks
   to filterfalse);
 - added "nlinks" sorting key to display number of hard links to a file on *nix
   systems (thanks to filterfalse);
 - normalize surrounding spaces in menu and dialog titles;
 - lower minimum supported terminal width and height from 30x10 to 20x5;
 - update cursor position on file disappearing in more predictable way.  Use the
   closes file to the previously active one that still exists (thanks to
   ranousse);
 - display lower bound on item count in status bar progress messages (e.g. on
   :grep).

Important fixes:
 - assume UTF-8 sequences can be broken (thanks to Svyatoslav Mishyn, a.k.a.
   juef);
 - made setting title inside terminal multiplexers (when terminal type is
   "screen*") work;
 - check file system sensitivity on OS X (thanks to loongw);
 - fixed startup on Windows 10 (thanks to th1rdey3 and Robert Sarkozi);
 - fixed swapped absolute/relative link creation on :alink/:rlink commands
   (patch by MadMaverick9);
 - multiple fixes for custom views (thanks to filterfalse);
 - more careful treating of files with colons in their names for menus and
   custom views (thanks to aleksejrs);
 - fixed ranges for :yank, 0.8 regression (thanks to Marius Schmidl);
 - fixed crash on copy-like operations that move several files into subdirectory
   of another view (thanks to Marius Schmidl);
 - fixed creation of intermediate directories on merging directories (thanks to
   willemw12).

Vim-plugin:
 - added set of :*Vim commands to vifm run from Vim plugin, which overrule
   initial :*Vifm command behaviour (thanks to Ross Hadden, a.k.a. rosshadden);
 - changed plugin to do not depend on location of vifm.  g:vifm_home is ignored
   from now on (thanks to aleksejrs).

Only on Windows:
 - display directory size on Windows more correctly;
 - improvements in running commands with special characters and/or spaces
   (thanks to Stas Malavin).

Other changes:
 - added handling of "-" command-line argument specified in place of directory
   path as instruction to read list of files from stdin;
 - added --server-list and --server-name command-line options that enumerates
   names of currently running vifm servers and sets name of target/this instance
   respectively;
 - added optional argument for --logging parameter that specifies path to
   startup log (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu);
 - invalidate directory size (calculated via ga/gA) if noticed that directory
   was changed.  This affects all parent directories as well, way easier to see
   what needs recalculation after file moving/removal;
 - warn about --remote command being disabled at build-time (thanks to
   Svyatoslav Mishyn, a.k.a. juef);
 - do not finish argument parsing after finding --help or --version, continue
   and validate the rest of command-line (thanks to Svyatoslav Mishyn, a.k.a.
   juef);
 - display incomplete file name on rename instead of failing with error on
   Unicode conversion issues.

See change log for the full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 09, 2015
=============

vifm v0.8
---------

New version brings several useful improvements of different kinds.  The most
substantial addition is custom views that allow one to combine files from
several directories in one view, which in turn enables processing of
search/grep/etc. results similar to handling contents of a regular directory.

Thanks to everyone who was reporting issues during beta period.

Also reminding about #vifm@Freenode IRC channel, color schemes preview at
http://vifm.info/colorschemes.shtml and introducing http://q2a.vifm.info Q&A
site for general usage questions.

Main changes:
 - added filename specific highlight (with a script to convert ls options);
 - added custom views, which contrary to regular views can contain files that do
   not belong to the same directory;
 - added job bar to display active backgrounded file operations;
 - added command-line mode abbreviations;
 - added global configuration and color schemes directory;
 - added live search match highlighting;
 - added optional per-file progress for file operations;
 - added full path patterns ({{globs}} and //regexp//);
 - added command-line options to control file/directory selection and selection
   processing to make it easier to use vifm as a file picker;
 - color schemes got ".vifm" extension, but the old-style names will still work
   for now;
 - XDG specification support;
 - ability to use terminal applications to preview graphics (e.g.
   w3mimgdisplay).

File operations:
 - added per-file overwrite confirmation on directory merging (thanks to
   willemw12);
 - added detailed list of errors when 'syscalls' is used (thanks to willemw12).

Key bindings:
 - added F key to less-like (file view) mode, which acts similar to `tail -F` or
   F key in less (thanks to Daniel Dettlaff, a.k.a. dmilith);
 - added b key to menu mode that creates custom view filled with menu items
   filtering out those that are not paths;
 - added zd normal and visual modes key to exclude items from custom views;
 - optional per-file progress in dialog mode activated by hitting "i" while
   operation is being performed.

:set command and options:
 - added 'chaselinks' option to automatically expand all symbolic links in path
   of a view (might not work on Windows) (thanks to filterfalse);
 - added 'mintimeout' option.  It enables controlling responsiveness on external
   events by Vifm (thanks to hofheinz);
 - added 'wordchars' option to specify which characters in command-line mode
   should be considered as part of a word (thanks to filterfalse);
 - added ^= operation for charset options;
 - added %[ and %] macros for 'statusline'/'ruler' (thanks to ranousse);
 - added "p" to 'shortmess' option to control tilde shortening of path in view
   titles (thanks to Martin Fischer);
 - changed default value of 'trashdir' from "$VIFM/Trash" to
   "%r/.vifm-Trash,$VIFM/Trash" (thanks to Joseph LP, a.k.a. ootput);
 - normalized sorting keys/view column names: "type" -> "dir", display real mode
   in octal for "mode", make "type" actually display file type (as "mode" did
   before) (thanks to Michal Belica, a.k.a. beli-sk);
 - united last pattern of :substitute command with search history (thanks to
   filterfalse).

Command-line mode:
 - added :highlight {pattern} for filename specific highlight (thanks to Ink,
   a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders);
 - added :cabbrev, :cnoreabbrev and :cunabbrev commands to manage command-line
   mode abbreviations (thanks to filterfalse);
 - added Ctrl-X / (slash) key to that inserts last search pattern into current
   cursor position (thanks to filterfalse);
 - added Ctrl-] key to trigger abbreviation expansion;
 - added single-argument form of :file[x]type and :fileviewer commands that
   lists (in menu mode) currently registered patterns that match specified file
   name;
 - added :cq[uit] command to exit with non-zero exit code and also abort
   directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
 - added :trashes? to display sizes of each non-empty trash directories (thanks
   to Svyatoslav Mishyn, a.k.a. juef);
 - added regexp patterns to :file[x]type and :fileviewer commands (thanks to
   filterfalse);
 - added :redr[aw] command to force immediate redraw (thanks to filterfalse);
 - allow non-printable characters to be arguments of :commands (thanks to
   filterfalse);
 - extended :sync command to support selective synchronization (user can choose
   among location, cursor position, local options and filters) (thanks to
   filterfalse).

Completion:
 - complete `clear` subcommand of :highlight.

Angle bracket notation:
 - added <lt> angle bracket notation (less-than character, '<') (thanks to
   filterfalse);
 - map <c-h> and <bs> to different key codes (thanks to fogine).  This is caused
   by inconsistency among terminals, map to both keys and it should work
   everywhere.

Macros:
 - added %px, %py, %pw and %ph macros that describe location and dimensions of
   preview area to use in external commands (thanks to Stephano, a.k.a. cao);
 - added %u and %U macros to redirect command output directly into custom view.
   The second one allows for more customization of file list, which is absence
   of sorting for now (thanks to filterfalse);
 - no more unjustified inconsistency in processing macros in :! and :file[x]type
   commands (thanks to Miodrag Tokić, a.k.a. loonies).

Scripting:
 - added system() builtin function that executes command via shell and returns
   its output;
 - added full path patterns ({{globs}} and //regexp//) (thanks to astrell);
 - report error on wrong expression in :if statement and misplaced :else/:endif
   on file sourcing.

Color scheme:
 - added JobLine highlight group for the job bar.

Configuration:
 - added fallback to use "XDG Base Directory Specification" when failed to find
   configuration in other places (thanks to Miodrag Tokić, a.k.a. loonies);
 - added global configuration {prefix}/etc/vifm/vifmrc and color schemes
   {prefix}/etc/vifm/colors/* (thanks to astrell and Michael Vetter, a.k.a.
   jubalh).

Performance:
 - significantly reduced amount of work performed by Vifm in idle state (thanks
   to hofheinz);
 - quit fast on --help/--version (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - throw away dead directories in directory histories on merging vifminfo files.
   Otherwise clearing such directories on :history is almost useless.

Menus and dialogs:
 - added handling of Ctrl-L to sort dialog (thanks to filterfalse);
 - added device id (major and minor numbers) to file info dialog;
 - made calculation of directory size visible in :jobs menu;
 - parse output of mandoc version of apropos in :apropos (thanks to Svyatoslav
   Mishyn, a.k.a. juef);
 - display RFC 2822 date without time zon in file info (thanks to Svyatoslav
   Mishyn, a.k.a. juef).

TUI (Text User Interface):
 - added search match highlighting for file names (thanks to Svyatoslav Mishyn,
   a.k.a. juef, and willemw12);
 - added job bar that displays backgrounded file operations if any (thanks to
   geo909);
 - redraw UI on resize during file operation when 'syscalls' is set;
 - redraw UI on resize when dialog is active;
 - dynamic dialog dimensions (minimum %30 percent of the screen rather than
   screen-wide all the time) (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - auto-resize position field on the status bar to fit the text (thanks to
   ranousse);
 - append unused space in view columns to the last one with percent sizing type
   if any (thanks to fogine).

Documentation:
 - manual page fixes/improvements (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - wrapped option names with single quotes in the man page to make it easier to
   search for options by their names.

Packaging:
 - added one more light color scheme to assets (in two variations astrell-root
   and astrell-user) (thanks to astrell);
 - added lookup for mandoc on *nix to perform manual page to plain text
   transformation (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - added OS X version of sample vifmrc file.  Now this one will be used on first
   run on OS X (thanks to Larry Hynes, a.k.a. larryhynes);
 - added dircolors -> vifm conversion script (thanks to Ink, a.k.a. inknoir,
   Hendrik Jaeger, a.k.a. henk, and Michael Maddern, a.k.a. madders);
 - added .vifm extension to color schemes (initial rename is performed
   automatically) (thanks Michael Vetter, a.k.a. jubalh);
 - added script to update timestamps, so that build system won't be regenerated
   without real reason.  One might want to run it when building from git
   checkout, which doesn't preserve correct timestamps;
 - install AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README and TODO to
   {prefix}/share/doc/vifm.  Install color schemes to
   {prefix}/share/vifm/colors.  Otherwise these are not available after
   installation;
 - made configure script lookup curs_set in libtinfo;
 - moved checks for build-time tools existence from Makefile to configure
   script;
 - made tests less dependent on environment (thanks to Hendrik Jaeger, a.k.a.
   henk).

Only on Windows:
 - automatically install sample vifmrc and help file on first start;
 - switch to utf-8 internal representation of paths.  This fixes issues when
   file name encoding doesn't match system encoding (thanks to Stas Panteleev).

Important fixes:
 - fixed undesired file removal on overwriting them with themselves (data loss
   after confirmation of overwriting files when destination matches source)
   (thanks to Сергей Соловьёв (Sergej Soloviov));
 - fixed crash on navigation to end of line in command-line mode (thanks to
   Christian Fillion, a.k.a. cfillion);
 - fixed `:help` (no arguments) when 'vimhelp' is on and automatically installed
   Vim documentation is used (thanks to ranousse);
 - better handling of case related operations;
 - fixed ":vs .." which used to use wrong base directory;
 - fixed assertion on including "type" in 'viewcolumns' value (thanks to Michal
   Belica, a.k.a. beli-sk);
 - better FUSE handling on OS X (thanks to Michael Maddern, a.k.a. madders);
 - fixed (deep) directory merging (thanks to willemw12);
 - fixed build and work on OpenBSD (at least to some degree that curses
   implementation there allows).  There might be some troubles with non-ascii
   characters (thanks to hofheinz and Brian Callahan, a.k.a. ibara);
 - fixed copying of fifo, socket and device files with 'syscalls' enabled.
   Thanks to Svyatoslav Mishyn (a.k.a. juef).

Vim-plugin:
 - added K mapping to Vim plugin (quick navigation to documentation, e.g. from
   vifmrc).  Patch by filterfalse.

Other changes:
 - added --delimiter command-line option.  Configures delimiter string on
   writing out list of paths (like on `-f` switch) (thanks to Jeet Sukumaran,
   a.k.a. jeetsukumaran);
 - added --choose-files and --choose-dir command-line switches to specify output
   location for names of selected files or last visited directory
   respectively (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
 - added --on-choose command-line switch to execute a command on selection
   rather than opening it (thanks to Ross Hadden, a.k.a. rosshadden);
 - added %FOREGROUND FUSE mounting option, which supersedes %CLEAR and fixes
   issue with passing input to FUSE mounter (thanks to Johannes, a.k.a. johannesmeng);
 - removed per-view last search pattern.  Don't worry, you probably won't even
   notice it: this doesn't affect regular use case, rather more exotic one,
   which is hard to notice;
 - better handling or unexpectedly unavailable directories on startup and while
   running (thanks to willemw12);
 - define $VIFM_FUSE_FILE environment variable for external commands to
   communicate path to file used to initiate FUSE mounting of directory we're
   in (thanks to astrell);
 - allowed having multiple file viewers with same rules for choosing them at
   run-time as for file associations (thanks to filterfalse);
 - redirect both standard output and error streams from viewers (already was the
   case for Windows);
 - handle commands that are too long to be passed directly to the shell by
   breaking them into list of arguments if possible (thanks to filterfalse).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 19, 2015
=============

vifm v0.8 beta testing has started
----------------------------------

New version brings several useful improvements of different kinds.  The most
substantial addition is custom views that allow one to combine files from
several directories in one view, which in turn enables processing of
search/grep/etc. results similar to handling contents of a regular directory.

That change alone affected internal structure quite seriously which combined
with operations on system calls from the previous release distant new version
far enough from 0.7 to name it 0.8.

Version change also gives one a moral right to introduce incompatible changes.
So if anyone remembers me postponing changing defaults or something like that
and is still waiting on it, please send a reminder (unfortunately I was
careless enough to didn't make detailed list of such things).  As of now the
following items are under evaluation:
 - removing "options", "filetypes", "commands" from 'vifminfo' option (not a
   big deal, but it's not really useful as well, and maybe potentially
   harmful);
 - removing 'trash' option as it effectively affects quite a lot things and is
   better to be enabled;
 - have 'hlsearch' off by default as normally search doesn't select anything
   and user can accidentally run some operation on too many files with default
   setup.

Please see the README file in packages for links where feedback can be
provided.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added filename specific highlight;
 - added custom views, which contrary to regular views can contain files that do
   not belong to the same directory;
 - added job bar to display active backgrounded file operations;
 - added command-line mode abbreviations;
 - added global configuration and color schemes directory;
 - added live search match highlighting;
 - added optional per-file progress for file operations;
 - added full path patterns ({{globs}} and //regexp//);
 - added command-line options to control file/directory selection and selection
   processing to make it easier to use vifm as a file picker;
 - color schemes got ".vifm" extension, but the old-style names will still work
   for now;
 - XDG specification support.

File operations:
 - added per-file overwrite confirmation on directory merging (thanks to
   willemw12);
 - added detailed list of errors when 'syscalls' is used (thanks to willemw12).

Key bindings:
 - added F key to less-like (file view) mode, which acts similar to `tail -F` or
   F key in less (thanks to Daniel Dettlaff, a.k.a. dmilith);
 - added b key to menu mode that creates custom view filled with menu items
   filtering out those that are not paths;
 - added zd normal and visual modes key to exclude items from custom views;
 - optional per-file progress in dialog mode activated by hitting "i" while
   operation is being performed.

:set command and options:
 - added 'chaselinks' option to automatically expand all symbolic links in path
   of a view (might not work on Windows) (thanks to filterfalse);
 - added 'mintimeout' option.  It enables controlling responsiveness on external
   events by Vifm (thanks to hofheinz);
 - added 'wordchars' option to specify which characters in command-line mode
   should be considered as part of a word (thanks to filterfalse);
 - added ^= operation for charset options;
 - added %[ and %] macros for 'statusline'/'ruler' (thanks to ranousse);
 - added "p" to 'shortmess' option to control tilde shortening of path in view
   titles (thanks to Martin Fischer);
 - changed default value of 'trashdir' from "$VIFM/Trash" to
   "%r/.vifm-Trash,$VIFM/Trash" (thanks to Joseph LP, a.k.a. ootput);
 - normalized sorting keys/view column names: "type" -> "dir", display real mode
   in octal for "mode", make "type" actually display file type (as "mode" did
   before) (thanks to Michal Belica, a.k.a. beli-sk);
 - united last pattern of :substitute command with search history (thanks to
   filterfalse).

Command-line mode:
 - added :highlight {pattern} for filename specific highlight (thanks to Ink,
   a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders);
 - added :cabbrev, :cnoreabbrev and :cunabbrev commands to manage command-line
   mode abbreviations (thanks to filterfalse);
 - added Ctrl-X / (slash) key to that inserts last search pattern into current
   cursor position (thanks to filterfalse);
 - added Ctrl-] key to trigger abbreviation expansion;
 - added single-argument form of :file[x]type and :fileviewer commands that
   lists (in menu mode) currently registered patterns that match specified file
   name;
 - added :cq[uit] command to exit with non-zero exit code and also abort
   directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
 - added :trashes? to display sizes of each non-empty trash directories (thanks
   to Svyatoslav Mishyn, a.k.a. juef);
 - added regexp patterns to :file[x]type and :fileviewer commands (thanks to
   filterfalse);
 - added :redr[aw] command to force immediate redraw (thanks to filterfalse);
 - allow non-printable characters to be arguments of :commands (thanks to
   filterfalse);
 - extended :sync command to support selective synchronization (user can choose
   among location, cursor position, local options and filters) (thanks to
   filterfalse).

Completion:
 - complete `clear` subcommand of :highlight.

Angle bracket notation:
 - added <lt> angle bracket notation (less-than character, '<') (thanks to
   filterfalse);
 - map <c-h> and <bs> to different key codes (thanks to fogine).  This is caused
   by inconsistency among terminals, map to both keys and it should work
   everywhere.

Macros:
 - added %px, %py, %pw and %ph macros that describe location and dimensions of
   preview area to use in external commands (thanks to Stephano, a.k.a. cao);
 - added %u and %U macros to redirect command output directly into custom view.
   The second one allows for more customization of file list, which is absence
   of sorting for now (thanks to filterfalse);
 - no more unjustified inconsistency in processing macros in :! and :file[x]type
   commands (thanks to Miodrag Tokić, a.k.a. loonies).

Scripting:
 - added system() builtin function that executes command via shell and returns
   its output;
 - added full path patterns ({{globs}} and //regexp//) (thanks to astrell);
 - report error on wrong expression in :if statement and misplaced :else/:endif
   on file sourcing.

Color scheme:
 - added JobLine highlight group for the job bar.

Configuration:
 - added fallback to use "XDG Base Directory Specification" when failed to find
   configuration in other places (thanks to Miodrag Tokić, a.k.a. loonies);
 - added global configuration {prefix}/etc/vifm/vifmrc and color schemes
   {prefix}/etc/vifm/colors/* (thanks to astrell and Michael Vetter, a.k.a.
   jubalh).

Performance:
 - significantly reduced amount of work performed by Vifm in idle state (thanks
   to hofheinz);
 - quit fast on --help/--version (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - throw away dead directories in directory histories on merging vifminfo files.
   Otherwise clearing such directories on :history is almost useless.

Menus and dialogs:
 - made calculation of directory size visible in :jobs menu;
 - parse output of mandoc version of apropos in :apropos (thanks to Svyatoslav
   Mishyn, a.k.a. juef).

TUI (Text User Interface):
 - added search match highlighting for file names (thanks to Svyatoslav Mishyn,
   a.k.a. juef, and willemw12);
 - added job bar that displays backgrounded file operations if any (thanks to
   geo909);
 - redraw UI on resize during file operation when 'syscalls' is set;
 - redraw UI on resize when dialog is active;
 - dynamic dialog dimensions (minimum %30 percent of the screen rather than
   screen-wide all the time) (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - auto-resize position field on the status bar to fit the text (thanks to
   ranousse).

Documentation:
 - manual page fixes/improvements (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - wrapped option names with single quotes in the man page to make it easier to
   search for options by their names.

Packaging:
 - added one more light color scheme to assets (in two variations astrell-root
   and astrell-user) (thanks to astrell);
 - added lookup for mandoc on *nix to perform manual page to plain text
   transformation (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - added OS X version of sample vifmrc file.  Now this one will be used on first
   run on OS X (thanks to Larry Hynes, a.k.a. larryhynes);
 - added dircolors -> vifm conversion script (thanks to Ink, a.k.a. inknoir,
   Hendrik Jaeger, a.k.a. henk, and Michael Maddern, a.k.a. madders);
 - added .vifm extension to color schemes (initial rename is performed
   automatically) (thanks Michael Vetter, a.k.a. jubalh);
 - install AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README and TODO to
   {prefix}/share/doc/vifm.  Install color schemes to
   {prefix}/share/vifm/colors.  Otherwise these are not available after
   installation;
 - made configure script lookup curs_set in libtinfo;
 - moved checks for build-time tools existence from Makefile to configure script;
 - made tests less dependent on environment (thanks to Hendrik Jaeger, a.k.a.
   henk).

Only on Windows:
 - automatically install sample vifmrc and help file on first start;
 - switch to utf-8 internal representation of paths.  This fixes issues when
   file name encoding doesn't match system encoding (thanks to Stas Panteleev).

Major fixes:
 - fixed undesired file removal on overwriting them with themselves (data loss
   after confirmation of overwriting files when destination matches source)
   (thanks to Сергей Соловьёв (Sergej Soloviov));
 - fixed crash on navigation to end of line in command-line mode (thanks to
   Christian Fillion, a.k.a. cfillion);
 - fixed `:help` (no arguments) when 'vimhelp' is on and automatically installed
   Vim documentation is used (thanks to ranousse);
 - better handling of case related operations;
 - fixed ":vs .." which used to use wrong base directory;
 - fixed assertion on including "type" in 'viewcolumns' value (thanks to Michal
   Belica, a.k.a. beli-sk);
 - better FUSE handling on OS X (thanks to Michael Maddern, a.k.a. madders).

Vim-plugin:
 - added K mapping to Vim plugin (quick navigation to documentation, e.g. from
   vifmrc).  Patch by filterfalse.

Other changes:
 - added --delimiter command-line option.  Configures delimiter string on
   writing out list of paths (like on `-f` switch) (thanks to Jeet Sukumaran,
   a.k.a. jeetsukumaran);
 - added --choose-files and --choose-dir command-line switches to specify output
   location for names of selected files or last visited directory
   respectively (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
 - added --on-choose command-line switch to execute a command on selection
   rather than opening it (thanks to Ross Hadden, a.k.a. rosshadden);
 - added %FOREGROUND FUSE mounting option, which supersedes %CLEAR and fixes
   issue with passing input to FUSE mounter (thanks to Johannes, a.k.a.
   johannesmeng);
 - removed per-view last search pattern.  Don't worry, you probably won't even
   notice it: this doesn't affect regular use case, rather more exotic one,
   which is hard to notice;
 - better handling or unexpectedly unavailable directories on startup and while
   running (thanks to willemw12);
 - define $VIFM_FUSE_FILE environment variable for external commands to
   communicate path to file used to initiate FUSE mounting of directory we're
   in (thanks to astrell);
 - allowed having multiple file viewers with same rules for choosing them at
   run-time as for file associations (thanks to filterfalse);
 - redirect both standard output and error streams from viewers (already was the
   case for Windows);
 - handle commands that are too long to be passed directly to the shell by
   breaking them into list of arguments if possible (thanks to filterfalse).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 25, 2014
================

Vifm v0.7.8 release
-------------------

New version adds a couple of major features, allows for some more customizations
and makes usual operations more convenient.  Finally, file system operations got
progress (it's disabled by default, new implementation needs to be tested in
different environments to become the primary one). Another frequently asked
feature is multiblock selection ("extended visual mode" if you wish). Vifm also
became friendlier to authors of colorschemes and those who'd like to customize
UI a bit more.

Main changes:
 - added multiblock "selection" (in quotes because it's also block deselection
   and inversion of selection for completeness);
 - added progress bar for file operations.  Available only if 'syscalls' option
   is set  (please be careful with that, check basic operations on temp files
   before using this with important data);
 - added names for 256 colors, highlight group for inactive cursor,
   ":highlight clear" command;
 - some improvements for cancelling operations;
 - better implementation of emptying trash directories;
 - new types of conflict resolution;
 - several extensions for filtering with user-defined commands;
 - more customizable UI (borders, padding);
 - smarter path completion;
 - separated Vifm and Vim plugin documentation;
 - a couple of extensions for Vim plugin (for mail and bulk file renaming).

Core:
 - added cancellation (handling of Ctrl-C) for FUSE mounting (but not
   unmounting);
 - added progress for long-running file system operations.  Available only if
   'syscalls' option is set;
 - added "[a]ppend the end" conflict resolution option (appends the rest of
   file, e.g. if previous operation was terminated) (thanks to Sergei
   Shilovsky).  Available only if 'syscalls' option is set;
 - added merge all option for name conflict resolution.  Same as "merge", but
   remembers the choice for future conflicts of directories (thanks to
   willemw12);
 - added skip all option for name conflict resolution (thanks to Miodrag
   Tokić (a.k.a. loonies));
 - changed "overwrite all" key from "a" to "O" for consistency (thanks to
   willemw12);
 - implemented creation, removal, copying, moving of files with system calls.
   Available only if 'syscalls' option is set;
 - rewrote trash content removal with system calls in background thread (thanks
   to lyuts and ckester).  It's also now visible in :jobs menu;
 - several improvements for :lstrash menu (thanks to filterfalse);
 - more reliable Ctrl-C detection.

Normal and visual modes:
 - added av normal mode shortcut that activates selection amending mode (thanks
   to ranousse, Michelle Bonk (a.k.a. unixtechie));
 - added/updated av/v/V visual mode keys to switch type of current visual mode;
 - added Ctrl-G key to visual selection amending mode, which switches kind of
   amending (append/remove/invert);
 - added ga and gA keys to visual mode (thanks to geo909);
 - separate visual selection marks ('< and '>), which allows to restore it via
   gv in both panes (thanks to filterfalse);
 - implement "(" and ")" keys for "perms" and "type" sorting keys (thanks to
   filterfalse);
 - skip nonexistent directories on Ctrl-O/Ctrl-I;
 - repeat search with last used search pattern on empty pattern of the search
   mode;
 - taught ga/gA commands to handle selection (thanks to geo909).

Command-line mode:
 - added i and I flags to :filter command to control filter case
   sensitivity (thanks to filterfalse);
 - added filter flags to output of :filter? command and formatted output as a
   table;
 - added ":highlight clear" to reset to builtin colors;
 - added =pattern special form of user-defined command that sets local filter to
   the given value (alike "/pattern" and "filter value") (thanks to
   filterfalse);
 - made :filter command consider trailing slash for symbolic links that point to
   directories (thanks to filterfalse);
 - allowed use of :filter syntax in user-defined filter commands (e.g.
   "command conf filter/.*\.cfg$/");
 - made +/- operands after semicolon in command-line range adjust base range end
   position rather than base cursor position as Vim does (thanks to
   filterfalse).

:set command and options:
 - added 'syscalls' boolean option.  Chooses external tools/system calls
   implementation.  {EXPERIMENTAL}, {WORK-IN-PROGRESS}, although no data loss so
   far.  The option will be eventually removed.  Mostly *nix-like systems are
   affected;
 - added 'cdpath' option (thanks to Bruce Hunsaker (a.k.a. hunsakerbn));
 - added 'tuioptions' option.  Controls padding of file lists in panels and
   visibility of side borders (thanks to Bruce Hunsaker (a.k.a. hunsakerbn) and
   Svyatoslav Mishyn (a.k.a. juef));
 - added 'fillchars' option.  Configures fill character for vertical
   borders (thanks to Svyatoslav Mishyn (a.k.a. juef));
 - extended 'slowfs' option format to allow path prefixes (in particular, it's
   useful for autofs) (thanks to Евгений Жаров (a.k.a. ezharov)).

Scripting:
 - added logical NOT unary operator ("!");
 - added executable() builtin function that checks whether executable exists at
   given path or in one of directories listed in $PATH;
 - added has() builtin function that checks whether particular property is
   enabled (two properties for now: "unix" and "win") (thanks to filterfalse);
 - made expand() builtin function expand environment variables (thanks to
   filterfalse).

Performance:
 - optimized speed of checking existence of a directory (important on displaying
   directory history);
 - automatically remove non-existent directories from directory history on
   :history command to speed up future operations (this clean up is very cheap
   on composing menu).

Completion:
 - added function name completion on command-line;
 - smart completion for paths.  Allows completion of quoted arguments (both
   ' and " types of quotes) and considers argument type context by performing
   escaping when needed.

Documentation:
 - added full command names to the manual page to ease searching them (thanks to
   y2kbugger);
 - documented how to use 256 colors in :highlight command (thanks to Michael
   Vetter (a.k.a. jubalh));
 - made it possible to hide Vifm's documentation from Vim when it's not run by
   Vifm's :help command (thanks to ranousse);
 - separated Vifm's vimdoc from plugin documentation.

TUI (Text User Interface):
 - added more human-friendly (xterm-like) names for 256 colors (thanks to
   Michael Vetter (a.k.a. jubalh));
 - added OtherLine highlight group for cursor of inactive pane (thanks to
   Svyatoslav Mishyn (a.k.a. juef));
 - more accurate scheduling of view updates.

Vim:
 - added file additional mail filetype plugin for Vim (thanks to Pavneet Arora).
   It allows one to pick attachments via Vifm on <localleader>a shortcut;
 - added file renaming filetype plugin for Vim (thanks to Factorial Prime).  It
   displays list of original file names in a vertical split;
 - provided additional repository for Vim
   plugin (https://github.com/vifm/vifm.vim);
 - make Vim plugin use cmd.exe as default shell on Windows (thanks to Jonathan
   Da Silva);
 - various minor syntax highlight improvements (wrapped lines, numbers,
   options).

Packaging:
 - added Vim plugin directory to share/vifm/vim on `make install` (thanks
   Svyatoslav Mishyn (a.k.a. juef));
 - removed ltmain.sh script, which is part of libtool that's not used
   anymore (thanks to Hendrik Jaeger (a.k.a. henk));
 - renamed configure.in to configure.ac (thanks to Hendrik Jaeger (a.k.a.
   henk));
 - "make clean" now removes "tags" files for Vim documentation generated
   during build (thanks to Hendrik Jaeger (a.k.a. henk)).

Major fixes:
 - fixed segmentation fault on running vifm with single argument if restored
   cursor is in the right pane (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - fixed segmentation fault during startup in a small terminal on OS X (thanks
   to Daniel Dettlaff (a.k.a. dmilith));
 - fixed segmentation fault on no view history and ":set autochpos" in
   vifmrc (thanks to ranousse);
 - fixed unexpectedly broken compilation on FreeBSD (thanks to Daniel
   Dettlaff (a.k.a. dmilith));
 - fixed :!! command, seems to be not working for a while;
 - fixed segmentation fault on Alt-. command in command-line mode (since 0.7.7).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 11, 2014
================

vifm v0.7.8 beta testing has started
------------------------------------

New version adds a couple of major features, allows for some more customizations
and makes usual operations more convenient.  Finally, file system operations got
progress (it's disabled by default, new implementation needs to be tested in
different environments to become the primary one). Another frequently asked
feature is multiblock selection ("extended visual mode" if you wish). Vifm also
became friendlier to authors of colorschemes and those who'd like to customize
UI a bit more.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added multiblock "selection" (in quotes because it's also block deselection
   and inversion of selection for completeness);
 - added progress bar for file operations.  Available only if 'syscalls' option
   is set  (please be careful with that, check basic operations on temp files
   before using this with important data);
 - added names for 256 colors, highlight group for inactive cursor,
   ":highlight clear" command;
 - some improvements for cancelling operations;
 - better implementation of emptying trash directories;
 - new types of conflict resolution;
 - several extensions for filtering with user-defined commands;
 - more customizable UI (borders, padding);
 - smarter path completion;
 - separated Vifm and Vim plugin documentation;
 - a couple of extensions for Vim plugin (for mail and bulk file renaming).

Core:
 - added cancellation (handling of Ctrl-C) for FUSE mounting (but not
   unmounting);
 - added progress for long-running file system operations.  Available only if
   'syscalls' option is set;
 - added "[a]ppend the end" conflict resolution option (appends the rest of
   file, e.g. if previous operation was terminated) (thanks to Sergei
   Shilovsky).  Available only if 'syscalls' option is set;
 - added merge all option for name conflict resolution.  Same as "merge", but
   remembers the choice for future conflicts of directories (thanks to
   willemw12);
 - changed "overwrite all" key from "a" to "O" for consistency (thanks to
   willemw12);
 - implemented creation, removal, copying, moving of files with system calls.
   Available only if 'syscalls' option is set;
 - rewrote trash content removal with system calls in background thread (thanks
   to lyuts and ckester).  It's also now visible in :jobs menu;
 - several improvements for :lstrash menu (thanks to filterfalse);
 - more reliable Ctrl-C detection.

Normal and visual modes:
 - added av normal mode shortcut that activates selection amending mode (thanks
   to ranousse, Michelle Bonk (a.k.a. unixtechie));
 - added/updated av/v/V visual mode keys to switch type of current visual mode;
 - added Ctrl-G key to visual selection amending mode, which switches kind of
   amending (append/remove/invert);
 - separate visual selection marks ('< and '>), which allows to restore it via
   gv in both panes (thanks to filterfalse);
 - implement "(" and ")" keys for "perms" and "type" sorting keys (thanks to
   filterfalse);
 - skip nonexistent directories on Ctrl-O/Ctrl-I;
 - repeat search with last used search pattern on empty pattern of the search
   mode.

Command-line mode:
 - added i and I flags to :filter command to control filter case
   sensitivity (thanks to filterfalse);
 - added filter flags to output of :filter? command and formatted output as a
   table;
 - added ":highlight clear" to reset to builtin colors;
 - added =pattern special form of user-defined command that sets local filter to
   the given value (alike "/pattern" and "filter value") (thanks to
   filterfalse);
 - made :filter command consider trailing slash for symbolic links that point to
   directories (thanks to filterfalse);
 - allowed use of :filter syntax in user-defined filter commands (e.g.
   "command conf filter/.*\.cfg$/");
 - made +/- operands after semicolon in command-line range adjust base range end
   position rather than base cursor position as Vim does (thanks to
   filterfalse).

:set command and options:
 - added 'syscalls' boolean option.  Chooses external tools/system calls
   implementation.  {EXPERIMENTAL}, {WORK-IN-PROGRESS}, although no data loss so
   far.  The option will be eventually removed.  Mostly *nix-like systems are
   affected;
 - added 'cdpath' option (thanks to Bruce Hunsaker (a.k.a. hunsakerbn));
 - added 'tuioptions' option.  Controls padding of file lists in panels and
   visibility of side borders (thanks to Bruce Hunsaker (a.k.a. hunsakerbn) and
   Svyatoslav Mishyn (a.k.a. juef));
 - added 'fillchars' option.  Configures fill character for vertical
   borders (thanks to Svyatoslav Mishyn (a.k.a. juef));
 - extended 'slowfs' option format to allow path prefixes (in particular, it's
   useful for autofs) (thanks to Евгений Жаров (a.k.a. ezharov)).

Scripting:
 - added logical NOT unary operator ("!");
 - added executable() builtin function that checks whether executable exists at
   given path or in one of directories listed in $PATH;
 - added has() builtin function that checks whether particular property is
   enabled (two properties for now: "unix" and "win") (thanks to filterfalse);
 - made expand() builtin function expand environment variables (thanks to
   filterfalse).

Performance:
 - optimized speed of checking existence of a directory (important on displaying
   directory history);
 - automatically remove non-existent directories from directory history on
   :history command to speed up future operations (this clean up is very cheap
   on composing menu).

Completion:
 - added function name completion on command-line;
 - smart completion for paths.  Allows completion of quoted arguments (both
   ' and " types of quotes) and considers argument type context by performing
   escaping when needed.

Documentation:
 - added full command names to the manual page to ease searching them (thanks to
   y2kbugger);
 - documented how to use 256 colors in :highlight command (thanks to Michael
   Vetter (a.k.a. jubalh));
 - made it possible to hide Vifm's documentation from Vim when it's not run by
   Vifm's :help command (thanks to ranousse);
 - separated Vifm's vimdoc from plugin documentation.

TUI (Text User Interface):
 - added more human-friendly (xterm-like) names for 256 colors (thanks to
   Michael Vetter (a.k.a. jubalh));
 - added OtherLine highlight group for cursor of inactive pane (thanks to
   Svyatoslav Mishyn (a.k.a. juef)).

Vim:
 - added file additional mail filetype plugin for Vim (thanks to Pavneet Arora).
   It allows one to pick attachments via Vifm on <localleader>a shortcut;
 - added file renaming filetype plugin for Vim (thanks to Factorial Prime).  It
   displays list of original file names in a vertical split;
 - provided additional repository for Vim
   plugin (https://github.com/vifm/vifm.vim);
 - make Vim plugin use cmd.exe as default shell on Windows (thanks to Jonathan
   Da Silva);
 - various minor syntax highlight improvements (wrapped lines, numbers,
   options).

Packaging:
 - added Vim plugin directory to share/vifm/vim on `make install` (thanks
   Svyatoslav Mishyn (a.k.a. juef));
 - removed ltmain.sh script, which is part of libtool that's not used
   anymore (thanks to Hendrik Jaeger (a.k.a. henk));
 - renamed configure.in to configure.ac (thanks to Hendrik Jaeger (a.k.a.
   henk)).

Major fixes:
 - fixed segmentation fault on running vifm with single argument if restored
   cursor is in the right pane (thanks to Svyatoslav Mishyn, a.k.a. juef);
 - fixed segmentation fault during startup in a small terminal on OS X (thanks
   to Daniel Dettlaff (a.k.a. dmilith));
 - fixed segmentation fault on no view history and ":set autochpos" in
   vifmrc (thanks to ranousse);
 - fixed unexpectedly broken compilation on FreeBSD (thanks to Daniel
   Dettlaff (a.k.a. dmilith));
 - fixed :!! command, seems to be not working for a while;
 - fixed segmentation fault on Alt-. command in command-line mode (since 0.7.7).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

May 16, 2014
============

vifm v0.7.7 release
-------------------

New version provides more customizations for several existing features
and more convenient interaction with them.

Thanks to all contributors and especially those who tried beta version.

Main changes:
 - vifm has had support for navigation by file number for years, finally it
   can display those numbers;
 - support of trash directories got better with ability to have trash per
   mount point and new trash menus;
 - command-line mode now has Ctrl-X prefixed keys that insert parts of
   filenames and filters (kind of Ctrl-R in Vim);
 - bookmarks are now timestamped for more predictable management (mainly
   deletion and overwriting);
 - for security reasons remote commands are now disabled at configuration
   stage by default;
 - most of long-running operations (:find, :copy, etc.) now can be cancelled
   by pressing Ctrl-C;
 - menus with list of files got unified "gf" (for navigation) and "e" (for
   editing) shortcuts;
 - several fixes and %n macro for better integration with terminal
   multiplexers;
 - ability to sort list view with disabled grouping of directories;
 - expression parser was extended in a couple of ways;
 - added three more sample color schemes.

Configuration:
 - added --enable-remote-cmd switch to configure script disabled by default, as
   current implementation of the feature is insecure.

Menus and dialogs:
 - added "gf" (go to file) and "e" (open in editor) keys to :grep, :find,
   :locate and user menu with navigation (%M macro).

Macros:
 - added %A macro to 'findprg' and 'grepprg' options, which is expanded to
   unmodified list of arguments (thanks to Robert Sarkozi);
 - added %n macro which suppresses using of terminal multiplexer in a command
   (user-defined :command, :!command or :file[x]type action).

Key bindings:
 - added Ctrl-W z key to normal and view modes, which closes preview pane or
   view modes (thanks to filterfalse).

:set command and options:
 - added "type" key to the 'sort' option to allow controlling grouping of
   directories (thanks to Daniel R., a.k.a. reicheltd);
 - added 'number', 'relativenumber' and 'numberwidth' options to control
   displaying of file numbers (thanks to filterfalse and greye);
 - extended 'trashdir' to handle list of path, some of which can specify
   location of trash directories local to each mount point (thanks to
   smpolymen and Sergei Shilovsky).

Command-line mode related changes:
 - added Ctrl-X a/c/d/e/m/r/t/= keys to command-line mode that insert parts
   of file names and values of filters (see related documentation) (thanks to
   ranousse and filterfalse);
 - added :lstrash command-line command, which displays list of files in trash
   (thanks to Sergei Shilovsky);
 - added :trashes command-line command, which lists all non-empty trash
   directories (thanks to Sergei Shilovsky);
 - treat semicolon (";") as a valid range separator for command-line commands;
 - allow empty ranges for command without name (as in :4).

Angle bracket notation:
 - added <nop> angle bracket notation (thanks to filterfalse).

Scripting:
 - added &option syntax for expressions (returns value of an option);
 - extended parser to support integer number constants and unary minus and
   plus operators;
 - extended parser to support <, <=, >= and > comparison operators for strings
   and integers.

Performance:
 - optimized file name comparison on sorting.

Documentation:
 - documented special bookmarks;
 - more verbose documentation on :filextype and its usage.

Color scheme related changes:
 - added sample light color scheme (provided by Daniel R., a.k.a. reicheltd);
 - added sample dark solarized color scheme (provided by Stéphane, a.k.a.
   istib);
 - added zenburn color scheme (provided by Svyatoslav Mishyn, a.k.a. juef).

TUI (Text User Interface):
 - handle backspace in preview window as terminal emulators do (thanks to Svenn
   Are Bjerkem, a.k.a. svenn).

Only on Windows:
 - added handling of paths with backward slashes for :find/:locate/:grep/%M
   menus on Windows (thanks to Robert Sarkozi);
 - fixed extending filetypes that are missing macro on Windows when cmd.exe
   shell is used (thanks to Daniel Polanco, a.k.a. dlpolanco);
 - fixed work with filenames contining special symbols on Windows with cmd.exe
   shell (thanks to Daniel Polanco, a.k.a. dlpolanco);
 - fixed testing whether application uses GUI on Windows when path contains
   spaces;
 - fixed extra escaping on prompt filename completion on Windows.

Other changes:
 - added cancellation handling for file system operations and invocations of
   external applications (works best on *nix systems) (thanks to Milan Svoboda,
   a.k.a. tex);
 - made bookmarks merging smarter by storing timestamps.  Removing bookmarks
   now works as expected.  Bookmarks overwriting by another instance shouldn't
   happen anymore.  (Thanks to Michael Maddern, a.k.a. madders.)

Major fixes:
 - fixed file descriptor leak on finishing background tasks (thanks to
   anonymous from linux.org.ru);
 - fixed several bugs that led to segmentation fault;
 - fixed copying/moving files after picking "Overwrite all" conflict resolution
   option (thanks to Stas Malavin).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

April 30, 2014
==============

vifm v0.7.7 beta testing has started
------------------------------------

New version provides more customizations for several existing features
and more convenient interaction with them.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - vifm has had support for navigation by file number for years, finally it
   can display those numbers;
 - support of trash directories got better with ability to have trash per
   mount point and new trash menus;
 - command-line mode now has Ctrl-X prefixed keys that insert parts of
   filenames and filters (kind of Ctrl-R in Vim);
 - bookmarks are now timestamped for more predictable management (mainly
   deletion and overwriting);
 - for security reasons remote commands are now disabled at configuration
   stage by default;
 - most of long-running operations (:find, :copy, etc.) now can be cancelled
   by pressing Ctrl-C;
 - menus with list of files got unified "gf" (for navigation) and "e" (for
   editing) shortcuts;
 - several fixes and %n macro for better integration with terminal
   multiplexers;
 - ability to sort list view with disabled grouping of directories;
 - expression parser was extended in a couple of ways;
 - added three more sample color schemes.

Configuration:
 - added --enable-remote-cmd switch to configure script disabled by default, as
   current implementation of the feature is insecure.

Menus and dialogs:
 - added "gf" (go to file) and "e" (open in editor) keys to :grep, :find,
   :locate and user menu with navigation (%M macro).

Macros:
 - added %A macro to 'findprg' and 'grepprg' options, which is expanded to
   unmodified list of arguments (thanks to Robert Sarkozi);
 - added %n macro which suppresses using of terminal multiplexer in a command
   (user-defined :command, :!command or :file[x]type action).

Key bindings:
 - added Ctrl-W z key to normal and view modes, which closes preview pane or
   view modes (thanks to filterfalse).

:set command and options:
 - added "type" key to the 'sort' option to allow controlling grouping of
   directories (thanks to Daniel R., a.k.a. reicheltd);
 - added 'number', 'relativenumber' and 'numberwidth' options to control
   displaying of file numbers (thanks to filterfalse and greye);
 - extended 'trashdir' to handle list of path, some of which can specify
   location of trash directories local to each mount point (thanks to
   smpolymen and Sergei Shilovsky).

Command-line mode related changes:
 - added Ctrl-X a/c/d/e/m/r/t/= keys to command-line mode that insert parts
   of file names and values of filters (see related documentation) (thanks to
   ranousse and filterfalse);
 - added :lstrash command-line command, which displays list of files in trash
   (thanks to Sergei Shilovsky);
 - added :trashes command-line command, which lists all non-empty trash
   directories (thanks to Sergei Shilovsky);
 - treat semicolon (";") as a valid range separator for command-line commands;
 - allow empty ranges for command without name (as in :4).

Angle bracket notation:
 - added <nop> angle bracket notation (thanks to filterfalse).

Scripting:
 - added &option syntax for expressions (returns value of an option);
 - extended parser to support integer number constants and unary minus and
   plus operators;
 - extended parser to support <, <=, >= and > comparison operators for strings
   and integers.

Performance:
 - optimized file name comparison on sorting.

Documentation:
 - documented special bookmarks.

Color scheme related changes:
 - added sample light color scheme (provided by Daniel R., a.k.a. reicheltd);
 - added sample dark solarized color scheme (provided by Stéphane, a.k.a.
   istib);
 - added zenburn color scheme (provided by Svyatoslav Mishyn, a.k.a. juef).

TUI (Text User Interface):
 - handle backspace in preview window as terminal emulators do (thanks to Svenn
   Are Bjerkem, a.k.a. svenn).

Only on Windows:
 - added handling of paths with backward slashes for :find/:locate/:grep/%M
   menus on Windows (thanks to Robert Sarkozi);
 - fixed extending filetypes that are missing macro on Windows when cmd.exe
   shell is used (thanks to Daniel Polanco, a.k.a. dlpolanco);
 - fixed work with filenames contining special symbols on Windows with cmd.exe
   shell (thanks to Daniel Polanco, a.k.a. dlpolanco);
 - fixed testing whether application uses GUI on Windows when path contains
   spaces;
 - fixed extra escaping on prompt filename completion on Windows.

Other changes:
 - added cancellation handling for file system operations and invocations of
   external applications (works best on *nix systems) (thanks to Milan Svoboda,
   a.k.a. tex);
 - made bookmarks merging smarter by storing timestamps.  Removing bookmarks
   now works as expected.  Bookmarks overwriting by another instance shouldn't
   happen anymore.  (Thanks to Michael Maddern, a.k.a. madders.)

Major fixes:
 - fixed file descriptor leak on finishing background tasks (thanks to
   anonymous from linux.org.ru);
 - fixed several bugs that led to segmentation fault.

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 31, 2013
================

vifm v0.7.6 release
-------------------

New minor version brings better integration with environment and external tools
as well as enhances file filtering capabilities in several ways.  Apart from
that, old features were tweaked and some build issues and bugs were resolved.
New Win32 and Win64 single-executable (no DLLs) packages appear first time with
this release.

This time beta stage was quite fruitful.  Thanks to all who installed and tried
beta versions, and special thanks to filterfalse.

Main changes:
 - added interactive local filter;
 - added external editing of command-line content with 'vicmd';
 - added integration with tmux;
 - added options to configure external commands for :apropos, :find, :grep
   and :locate commands;
 - added desktop entry file (\*nix only) and updated application icon;
 - fixed build for some combinations of OS/environments (OS X, 32/64-bit
   cygwin, Windows).

Notice: if you mapped q key to something, new q:, q/, q? and q= keys won't be
available; suggested solution is to change the mapping to qq.

More detailed list of changes.

Performance:
 - increased performance of (re)loading content for view mode (thanks to Robert
   Sarkozi).

Key bindings:
 - process [count] passed to gUU, gU<selector>, gUgU, gu<selector>, guu and gugu
   commands;
 - made all Ctrl-W x keys available in view mode (thanks to filterfalse);
 - changed meaning of the R key in view mode from redrawing view to reloading it
   preserving scroll position (thanks to Robert Sarkozi).

Normal and visual modes related changes:
 - added q:, q/, q? and q= keys (q= is defined for normal mode only) to prompt
   for command-line in external editor;
 - added "=" normal mode key, which activates file name filtering.

Command-line mode related changes:
 - added "=" and "filter" values for :history command, to show history of local
   filter;
 - added Ctrl-G key to start editing in external editor (for editing command,
   search pattern and file renames);
 - added optional argument for :invert command to control more kinds of
   inversion (thanks to filterfalse);
 - better order of command validity checks;
 - show better error message on unmatched quotes in command arguments;
 - store cancelled prompt input in prompt history;
 - check destination path existence before changing directory to it on :sync
   command;
 - use last search pattern as filename filter when :filter command gets an empty
   argument (:filter//, :filter"", :filter'') (thanks to filterfalse);
 - match only filename against pattern in :fileviewer instead of full path.

:set command and options:
 - added 'aproposprg', 'findprg', 'grepprg' and 'locateprg' options to specify
   external commands format;
 - added "fhistory" to 'vifminfo', which controls storing of local filter
   history;
 - added "f" flag to 'cpoptions' option.  It controls initial state of filename
   filter inversion for :filter[!] {regex} command (thanks to filterfalse);
 - from now on not absolute paths for the 'fusehome' options are rejected;
 - expand environment variables in values of the 'fusehome' and 'trashdir'
   options (thanks to filterfalse);
 - more adequate reaction on setting 'trashdir' option to wrong value;
 - do not reset selection on search when 'hlsearch' is reset (thanks to
   filterfalse).

File filtering:
 - distinguish files and directories in filename filter by appending a slash to
   names of directories;
 - separated file name filter into manual and automatic, mainly for convenience.

TUI (Text User Interface):
 - preserve current cursor position on view resorting;
 - force split-view when two paths are specified on command-line (thanks to
   filterfalse);
 - consider 'classify' option on displaying file name in the status bar (thanks
   to Thomas Nemeth).

For Vim:
 - added syntax and filetype plugins for command-line editing buffers (thanks to
   filterfalse);
 - updated syntax file to highlight more elements (thanks to filterfalse).

Only on Windows:
 - filter files in case insensitive way on Windows;
 - don't wait finishing of GUI applications on Windows (thanks to Robert
   Sarkozi).

Other changes:
 - added integration with tmux (thanks to Seth VanHeulen, a.k.a. svanheulen);
 - added desktop entry file (thanks to Richard Benson);
 - added merge option for name conflict resolution, which allows for merging two
   directories overwriting files with matching names;
 - updated application icon (thanks to Richard Benson for making it);
 - don't overwrite directory stack stored in vifminfo on exit unless it was
   changed in current session;
 - improved documentation on several subjects;
 - display error after sourcing file with unmatched :if/:endif
   statements (thanks to filterfalse).

Major fixes:
 - fixed configuration when wcscasecmp(), wcsncasecmp() or set\_escdelay()
   functions is not available (thanks to Russell Urquhart);
 - fixed reserving of about 1 GiB piece of memory on 256-color terminals (sorry
   about that);
 - fixed running of executable with symbols that require escaping in their
   name (\*nix only).  Strangely enough, it wasn't noticed before;
 - fixed terminal hang after executing several external commands in a
   row (thanks to filterfalse);
 - fixed search of the first element in file list when displaying of parent
   directory is disabled;
 - fixed fails on running executables when 'fastrun' option is on (thanks to
   MadMaverick9).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 24, 2013
================

vifm v0.7.6 beta testing continued
----------------------------------

First beta version revealed some issues with new functionality and
degradation of previously existing features.  That's why second beta
version is released.  Included fixes primary target Windows platform,
but some of them are related to \*nix systems as well.

Thanks to filterfalse and Robert Sarkozi for their help in finding and
solving those issues.

Additionally, Win64 build is available now.

See change log for quite short list of fixes and updates.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 17, 2013
================

vifm v0.7.6 beta testing has started
------------------------------------

New minor version brings better integration with environment and external tools
as well as enhances file filtering capabilities in several ways.  Apart from
that, old features were tweaked and some build issues and bugs were resolved.
New Win32 single-executable (no DLLs) package appears first time with this
release, Win64 package might also be available a bit later.

The beta stage will last about two weeks.  In case any serious bugs are found
during this period, another beta version might be released.

Main changes:
 - added interactive local filter;
 - added external editing of command-line content with 'vicmd';
 - added integration with tmux;
 - added options to configure external commands for :apropos, :find, :grep
   and :locate commands;
 - added desktop entry file (\*nix only) and updated application icon;
 - fixed build on some versions of OS X.

Notice: if you mapped q key to something, new q:, q/, q? and q= keys won't be
available; suggested solution is to change the mapping to qq.

More detailed list of changes.

Performance:
 - increased performance of (re)loading content for view mode (thanks to Robert
   Sarkozi).

Key bindings:
 - process [count] passed to gUU, gU<selector>, gUgU, gu<selector>, guu and gugu
   commands;
 - made all Ctrl-W x keys available in view mode (thanks to filterfalse);
 - changed meaning of the R key in view mode from redrawing view to reloading it
   preserving scroll position (thanks to Robert Sarkozi).

Normal and visual modes related changes:
 - added q:, q/, q? and q= keys (q= is defined for normal mode only) to prompt
   for command-line in external editor;
 - added "=" normal mode key, which activates file name filtering.

Command-line mode related changes:
 - added "=" and "filter" values for :history command, to show history of local
   filter;
 - added Ctrl-G key to start editing in external editor (for editing command,
   search pattern and file renames);
 - added optional argument for :invert command to control more kinds of
   inversion (thanks to filterfalse);
 - better order of command validity checks;
 - show better error message on unmatched quotes in command arguments;
 - store cancelled prompt input in prompt history;
 - check destination path existence before changing directory to it on :sync
   command;
 - use last search pattern as filename filter when :filter command gets an empty
   argument (:filter//, :filter"", :filter'') (thanks to filterfalse);
 - match only filename against pattern in :fileviewer instead of full path.

:set command and options:
 - added 'aproposprg', 'findprg', 'grepprg' and 'locateprg' options to specify
   external commands format;
 - added "fhistory" to 'vifminfo', which controls storing of local filter
   history;
 - added "f" flag to 'cpoptions' option.  It controls initial state of filename
   filter inversion for :filter[!] {regex} command (thanks to filterfalse);
 - from now on not absolute paths for the 'fusehome' options are rejected;
 - expand environment variables in values of the 'fusehome' and 'trashdir'
   options (thanks to filterfalse);
 - more adequate reaction on setting 'trashdir' option to wrong value;
 - do not reset selection on search when 'hlsearch' is reset (thanks to
   filterfalse).

File filtering:
 - distinguish files and directories in filename filter by appending a slash to
   names of directories;
 - separated file name filter into manual and automatic, mainly for convenience.

TUI (Text User Interface):
 - preserve current cursor position on view resorting;
 - force split-view when two paths are specified on command-line (thanks to
   filterfalse);
 - consider 'classify' option on displaying file name in the status bar (thanks
   to Thomas Nemeth).

For Vim:
 - added syntax and filetype plugins for command-line editing buffers (thanks to
   filterfalse);
 - updated syntax file to highlight more elements (thanks to filterfalse).

Only on Windows:
 - filter files in case insensitive way on Windows;
 - don't wait finishing of GUI applications on Windows (thanks to Robert
   Sarkozi).

Other changes:
 - added integration with tmux (thanks to Seth VanHeulen, a.k.a. svanheulen);
 - added desktop entry file (thanks to Richard Benson);
 - added merge option for name conflict resolution, which allows for merging two
   directories overwriting files with matching names;
 - updated application icon (thanks to Richard Benson for making it);
 - don't overwrite directory stack stored in vifminfo on exit unless it was
   changed in current session;
 - improved documentation on several subjects.

Major fixes:
 - fixed configuration when wcscasecmp(), wcsncasecmp() or set\_escdelay()
   functions is not available (thanks to Russell Urquhart);
 - fixed reserving of about 1 GiB piece of memory on 256-color terminals (sorry
   about that);
 - fixed running of executable with symbols that require escaping in their
   name (\*nix only).  Strangely enough, it wasn't noticed before;
 - fixed terminal hang after executing several external commands in a
   row (thanks to filterfalse);
 - fixed search of the first element in file list when displaying of parent
   directory is disabled;
 - fixed fails on running executables when 'fastrun' option is on (thanks to
   MadMaverick9).

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

May 10, 2013
============

vifm v0.7.5 release
-------------------

New version adds one major feature (parsing of escape codes), set of
improvements for existing ones and fixes for bugs.  There are also some changes
in build system and new extra files bundled with vifm.

Main changes:
 - removed using of libtool in build process on *nix-like systems;
 - added parsing of escape codes for the preview pane and less-like view;
 - added expand() builtin function;
 - added Gentoo ebuild and sample color schemes;
 - added macros that are expanded to register's content;
 - added dynamic loading of xlib;
 - added 'shortmess' option;
 - added pausing of shell on external commands fails on Windows;
 - fixed build issues on FreeBSD and OS X systems;
 - fixed for redrawing and searching in less-like mode;
 - fixed issues with :help command on Windows.

More detailed list of changes.

Configuration:
 - added --without/[with]-dyn-X11 flag to the configure script to control
   static/dynamic linking against libX11 library.  Thanks to Hendrik Jaeger
   (a.k.a. henk) for the idea;
 - don't use libtool in build process on *nix platforms (thanks to Merovius).

Documentation:
 - slightly updated plugin related documentation.

Macros:
 - added macros that are expanded to register's content (thanks to Florian
   Baumann, a.k.a. derflob).

:set command and options:
 - added 'shortmess' option and its first flag: "T" to shorten long status bar
   messages (thanks to ranousse);
 - added "perms" sorting key on *nix (proposed by Daniel Dettlaff, a.k.a.
   dmilith);
 - added new type of option (charset) and used it for 'cpoptions' and
   'shortmess' options;
 - made 'slowfs' option actually work on OS X (thanks to Daniel Dettlaff,
   a.k.a. dmilith).

Color scheme related changes:
 - added sample color schemes (proposed by Daniel Dettlaff, a.k.a. dmilith);
 - don't fallback to default colors on try to switch to a colorscheme, which is
   not supported by terminal.

TUI (Text User Interface):
 - added parsing of escape codes in the preview pane;
 - added parsing of escape codes in explore (less-like) mode;
 - don't redraw file list for explore window on resize;
 - less updates for window in explore mode on resize.

Menus and dialogs:
 - changed the way title of the permissions dialog is composed.

Command-line mode related changes:
 - allowed exclamation mark for the :sync command (to force synchronization of
   cursor position when used without arguments);
 - don't store last command-line command for the dot normal mode command
   between sessions.  Also it doesn't depend on command-line history anymore
   and can be used with completely disabled history;
 - made :execute process its arguments just like :echo command (thanks to
   Daniel Dettlaff, a.k.a. dmilith, which made me discover old behaviour);
 - don't accept arguments to the :help command when 'vimhelp' option is off.

Only on Windows:
 - pause on failed execution of a help command.  Thanks to filterfalse;
 - pause when execution of shell command fails (e.g. on
   `:!foobar-does-not-exist`).

Other changes:
 - added Gentoo ebuild.  Thanks to Oleg Gordienko (a.k.a. gordio);
 - added expand() builtin function to expand macros (thanks to Sebastian
   Cyprych for the use case);
 - less-like mode now highlights multiple matches in a line;
 - less-like mode is now updated immediately when one changes 'wrap' option;
 - save dot files filter state in vifminfo (thanks to Daniel Dettlaff, a.k.a.
   dmilith).

Major fixes:
 - building on FreeBSD and OS X (thanks to Daniel R., a.k.a. r1chelt, and
   Daniel Dettlaff, a.k.a. dmilith);
 - various changes in configuration using autotools;
 - removed using of libtool in build process on *nix-like systems;
 - vifminfo file update on Windows (broken in 0.7.4b);
 - various issues with displaying wide characters (e.g. Chinese);
 - ctrl-W H/J/K/L shortcuts and less-like view;
 - issues with calling Vim on :help command.  Thanks to filterfalse.

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

April 22, 2013
==============

vifm v0.7.5 beta testing has started
------------------------------------

New version adds one major feature (parsing of escape codes), set of
improvements for existing ones and fixes for bugs.  There are also some
changes in build system and new extra files bundled with vifm.

The beta stage will last about two weeks.  In case any bugs are found
during this period, another beta version will be released.

Main changes:
 - removed using of libtool in build process on *nix-like systems;
 - added parsing of escape codes for the preview pane and less-like view;
 - added expand() builtin function;
 - added Gentoo ebuild and sample color schemes;
 - added macros that are expanded to register's content;
 - added dynamic loading of xlib;
 - added 'shortmess' option;
 - fixed build issues on FreeBSD and OS X systems;
 - fixes for redrawing and searching in less-like mode.

More detailed list of changes.

Configuration:
 - added --without/[with]-dyn-X11 flag to the configure script to control
   static/dynamic linking against libX11 library.  Thanks to Hendrik Jaeger
   (a.k.a. henk) for the idea;
 - don't use libtool in build process on *nix platforms (thanks to Merovius).

Documentation:
 - slightly updated plugin related documentation.

Macros:
 - added macros that are expanded to register's content (thanks to Florian
   Baumann, a.k.a. derflob).

:set command and options:
 - added 'shortmess' option and its first flag: "T" to shorten long status bar
   messages (thanks to ranousse);
 - added "perms" sorting key on *nix (proposed by Daniel Dettlaff, a.k.a.
   dmilith);
 - added new type of option (charset) and used it for 'cpoptions' and
   'shortmess' options;
 - made 'slowfs' option actually work on OS X (thanks to Daniel Dettlaff,
   a.k.a. dmilith).

Color scheme related changes:
 - added sample color schemes (proposed by Daniel Dettlaff, a.k.a. dmilith);
 - don't fallback to default colors on try to switch to a colorscheme, which
   is not supported by terminal.

TUI (Text User Interface):
 - added parsing of escape codes in the preview pane;
 - added parsing of escape codes in explore (less-like) mode;
 - don't redraw file list for explore window on resize;
 - less updates for window in explore mode on resize.

Menus and dialogs:
 - changed the way title of the permissions dialog is composed.

Command-line mode related changes:
 - allowed exclamation mark for the :sync command (to force synchronization
   of cursor position when used without arguments);
 - don't store last command-line command for the dot normal mode command
   between sessions.  Also it doesn't depend on command-line history anymore
   and can be used with completely disabled history;
 - made :execute process its arguments just like :echo command (thanks to
   Daniel Dettlaff, a.k.a. dmilith, which made me discover old behaviour).

Other changes:
 - added Gentoo ebuild.  Thanks to Oleg Gordienko (a.k.a. gordio);
 - added expand() builtin function to expand macros (thanks to Sebastian
   Cyprych for the use case);
 - less-like mode now highlights multiple matches in a line;
 - less-like mode is now updated immediately when one changes 'wrap' option;
 - save dot files filter state in vifminfo (thanks to Daniel Dettlaff, a.k.a.
   dmilith).

Major fixes:
 - building on FreeBSD and OS X (thanks to Daniel R., a.k.a. r1chelt, and
   Daniel Dettlaff, a.k.a. dmilith);
 - various changes in configuration using autotools;
 - removed using of libtool in build process on *nix-like systems;
 - vifminfo file update on Windows (broken in 0.7.4b);
 - various issues with displaying wide characters (e.g. Chinese);
 - ctrl-W H/J/K/L shortcuts and less-like view.

See change log for full list of changes and by whom they were suggested.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

January 21, 2013
================

vifm v0.7.4b release
--------------------

This version is a minor bugfix release.  It doesn't contain any new
features.  The release fixes more than 17 bugs found since version
0.7.4a.

Two weeks since beta version was published have passed.  Since no bugs
were reported, the beta version is now released as 0.7.4b without
any changes except version number.

Fixes in this version are related to the following subjects:
 - interaction with the screen tool (thanks to Jing Liu);
 - working with registers (old, but unreported bugs);
 - rights elevation and dot directories on Windows;
 - processing of vifminfo file (thanks to Christoph, a.k.a informationen);
 - handling of colorscheme files (thanks to Charles Kauffman);
 - displaying of CJK characters (thanks to lcj);
 - 'classify' option (thanks to Thomas Nemeth).

See change log for full list of fixes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

January 7, 2013
===============

vifm v0.7.4b beta testing has started
-------------------------------------

This version is a minor bugfix release.  It doesn't contain any new
features.  The release fixes more than 17 bugs found since version
0.7.4a.

Because of promise not to release anything without beta-testing,
even this bugfix release has a beta stage, which should last about
two weeks. In case some bugs will be found, a second beta will be
released in a week.

Fixes are related to the following subjects:
 - interaction with the screen tool (thanks to Jing Liu);
 - working with registers (old, but unreported bugs);
 - rights elevation and dot directories on Windows;
 - processing of vifminfo file (thanks to Christoph, a.k.a informationen);
 - handling of colorscheme files (thanks to Charles Kauffman);
 - displaying of CJK characters (thanks to lcj);
 - 'classify' option (thanks to Thomas Nemeth).

See change log for full list of fixes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 22, 2012
================

vifm v0.7.4a
------------

0.7.4 package contains configuration files of autotools of different
versions.  As a result it's not always possible to build vifm 0.7.4 by
running `./configure && make`.  The author is sorry about wasted time
of users spent on building vifm with partially broken build system.

Anyway this mistake has also a good point.  0.7.4a fixes several bugs,
some of which are related to new features.

See change log for full list of fixes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

October 18, 2012
================

vifm v0.7.4
-----------

0.7.4 is a minor release, which improves existing features as well as adds
some new ones.

There are two main directions in which improvements were made.  One of them
is TUI, which now has support of multiple columns and ls-like view as well as
customizable file name decoration (prefix and suffix).  The second one is
connected with command interpreter, which now supports builtin functions,
conditional operators and conditional execution of commands
(using if-else-endif statements).  Additionally, vifm's memory footprint was
made smaller and running of programs associated with files made smarter
(won't stop until existing program is found).

Main changes:
 - new multicolumn view;
 - new ls-like view (see 'lsview' option) and related keys for it;
 - prefixes and suffixes of files of different types are configurable now;
 - smarter handling of file associations (now vifm will try to find existing
   program);
 - some basic means to do scripting (if-else-endif statements, builtin
   functions, comparison operators);
 - reduced history memory consumption;
 - better configure script, which now checks more stuff (and does it in a
   more accurate way) needed to build vifm.

More detailed list of changes.

Configuration:
 - removed compile-time compatibility mode (the compatibility-mode switch),
   now "f" flag in 'cpoptions' does the same;
 - added --without/[with]-X11 configure script option;
 - configure script now checks much more then before;
 - better make files (thanks to Hendrik Jaeger).

Only on Windows:
 - replaced gl normal mode mapping for Windows with gr because of conflict
   (with 'lsview');
 - allow paths in :file[x]type command that contain spaces to be doublequoted
   on Windows.

Normal and visual modes related changes:
 - added Ctrl-W H/J/K/L normal mode keys;
 - added gh, gj, gk and gl keys for normal and visual modes;
 - added 0, ^ and $ keys for normal and visual modes, which also work as
   selectors in normal mode.

Command-line mode related changes:
 - added Ctrl-T handling in command line to swap characters;
 - added Meta-. handling in command line to paste last parts of previous
   commands;
 - added :echo command;
 - added :if, :else and :endif commands;
 - added support for `==` and `!=` operators;
 - added :normal command;
 - added mapping commands for view and menu modes;
 - changed relative path base for :split and :vsplit commands;
 - expand macros for user defined commands.

:set command and options:
 - added 'viewcolumns' local option to control view columns;
 - added 'lsview' option to control ls-like view look;
 - added 'dotdirs' option to control visibility of "../" directory;
 - added 'classify' option to set prefixes and suffixes for different file
   types;
 - added %E 'statusline' option macro, which means size of all selected files
   or current file, if no files are selected;
 - added "t" flag to 'cpoptions' option (replaces compile-time compatibility
   mode).

Completion:
 - added completion for :set option= even for options without variants;
 - complete only directory names for :split and :vsplit commands;
 - escape pipe character during :file completion;
 - complete :set for short and full option names like Vim does (e.g. 'so'
   should be expanded to 'sort', not only 'scrolloff').

TUI (Terminal User Interface):
 - added status bar messages for :apropos, :find and :locate commands;
 - flicker less on :restart command;
 - don't show Ctrl-C part in information message boxes where it doesn't make
   sense;
 - reduce delay between terminal resize and TUI redrawing;
 - fixed background bold (light) colors in linux native console.

Color scheme related changes:
 - added light versions of color names.

Key bindings:
 - don't pause on '0' after Ctrl-W (count cannot start with zero);
 - multiply counts in front and in the middle of commands with Ctrl-W (as Vim
   does);
 - multiply counts in front of command and its selector (as Vim does).

Other changes:
 - added support for builtin functions and filetype() as the first one;
 - check current view of other pane on leaving FUSE mount directory an don't
   unmount if that file system is still in use;
 - try the rest of the programs for an association when the default one isn't
   found;
 - reduced memory consumption of view histories.

And fixes of bugs and memory leaks.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 23, 2012
=============

vifm v0.7.3a
------------

It happens some bugs are discovered just after making a new release.  And it
happened with vifm 0.7.3, which was tested, but apparently not enough.  So
0.7.3a is a bugfix release, which contains fixes for one serious bug and
several small ones as well as adds some more information to the documentation
and very small enhancements.

If you would like to be notified about future releases of vifm or some
important news related to vifm by email, consider subscribing to recently
created vifm-announce@lists.sourceforge.net read-only mailing list.  You can
do this by following this link.

Though this is a bugfix release it has some changes since v0.7.3 that should
be mentioned:

Completion:
 - better completion for :colorscheme command.

Documentation:
 - added a section about color schemes to the documentation;
 - documented that %m, %M, %s, %S and %i have bigger priority than &;
 - documented that %m, %M, %s, %S and %i are mutually exclusive;
 - documented treating of whitespace around option names in :set command.

:set command and options:
 - allowed whitespace after option name in :set command;
 - added checks for correct value of 'tabstop' and 'timeoutlen' options;
 - reset 'columns' and 'lines' options to real number of columns;
 - reset value of 'scrolloff' option to zero on attempt to assign a negative
   value to it;
 - faster execution of `:set sort=foo sortorder sortnumbers` in vifmrc.

TUI (Terminal User Interface):
 - faster redrawing of status bar with "-- VISUAL --" message after "Press
   Enter" message.

Command-line mode related changes:
 - expand tilde in the second argument of :colorscheme command;
 - forbid relative paths in :colorscheme command until vifm is completely
   loaded;
 - pass range given to alias to an aliased command.

Performance:
 - faster Ctrl-W x, Ctrl-W o, Ctrl-W s, Ctrl-W v, Ctrl-W =, Ctrl-W <,
   Ctrl-W >, Ctrl-W -, Ctrl-W +, Ctrl-W |, Ctrl-W _;
 - faster redraw on terminal resizing;
 - made file filtering using regular expressions work faster (matters when
   directory contains several thousands files);
 - draw quickview on startup only once.

Normal and visual modes related changes:
 - show correct number of selected files in visual mode after n and N keys.

And bug fixes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 3, 2012
============

vifm v0.7.3 release
-------------------

If you would like to be notified about future releases of vifm or some
important news related to vifm by email, consider subscribing to recently
created vifm-announce@lists.sourceforge.net read-only mailing list.  You can
do this by following this link.

Changes since v0.7.2 in general:
 - removed support of moving items in the :file menu;
 - added description of :file programs;
 - improved messages in the TUI as well as it's redrawing in various
   scenarios;
 - changed behaviour of Enter key on a selected directories;
 - better work with PATH environment variable.

Changes since v0.7.2 in details:

Completion:
 - added completion for :copy, :clone, :move, :alink, :rlink and :rename
   commands;
 - added completion for :touch and :mkdir commands;
 - added completion for :split and :vsplit commands.

TUI (Terminal User Interface):
 - added Ctrl-L handling in file info (Ctrl-G) mode;
 - less blinking of the screen in various scenarios;
 - replace home directory with the tilde in terminal title;
 - corrected status bar messages about failed search;
 - better handling of multiline messages in status bar.

Normal and visual modes related changes:
 - leave leading zeros on Ctrl-A/X commands;
 - added "Y" key to visual mode as an alias for "yy";
 - open selected directories with l or Enter keys.

Configuration:
 - added --enable-desktop-files (enabled by default) configure option.

Only on Windows:
 - allow bookmarking of host names on Windows (e.g. //ZX-SPECTRUM);
 - show host's root in history menu (e.g. //ZX_SPECTRUM);
 - made :fileviewer command work.

Macros:
 - added macros expansion for :touch and :mkdir commands;
 - added %i macro to completely ignore output of external commands.

Command-line mode related changes:
 - added :finish command to use in sourced scripts;
 - improved :let command (allowed using of expressions at the right side of
   the statement);
 - properly handle when user alters PATH environment variable using :let
   command;
 - added description for :filetype, :filextype and :fileviewer commands;
 - save last typed but not executed command in command-line mode (this also
   includes searches).

Menus and dialogs:
 - removed possibility of moving items in :file menu;
 - added size of file in bytes in file info mode (Ctrl-G);
 - added q key to close menus.

Other changes:
 - added notes about automatic FUSE mounts to the documentation;
 - now vifm removes scripts (`$VIFM/scripts/**`) from PATH for :shell command;
 - use common search history for normal, visual and menu modes;
 - increased directory modification stamp precision on Unix.

Plus bug fixes of course.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

February 19, 2012
=================

vifm v0.7.2
-----------

Changes since v0.7.1 :set command and options:
 - added 'rulerformat' option;
 - added 'statusline' option;
 - added 'columns' and 'lines' options;
 - added 'trashdir' option (by Chris Skalenda).

Command-line mode related changes:
 - added optional argument for the :sync command;
 - added support for running :cmap, :nmap and :vmap with one argument;
 - added recursive mode for :rename command;
 - added :let and :unlet commands to work with environment variables;
 - added :windo and :winrun commands;
 - never change active view on :restart command;
 - allowed using of macros with :clone command.

Angle bracket notation:
 - added <esc>.

Only on Windows:
 - added embedded icon;
 - added file properties dialog;
 - show "Sorting directory..." message only for big directories;
 - change console title;
 - made determining of home directory more intelligent;
 - made 'sortnumbers' work;
 - avoid unnecessary directory view updates (like after C key);
 - allow using of backward slashes in :rename command;
 - let :s and :gs filename modifiers change slash type;
 - properly quit vifm on console closing;
 - added :u filename modifier for UNC computer name;
 - added file attributes in status bar and file info view.

Normal and visual modes related changes:
 - added ctrl-w p, ctrl-w b and ctrl-w t normal mode keys.

Configuration:
 - added $VIFM and $MYVIFMRC environment variables;
 - now vifm will add all subdirectories of ~/.vifm/scripts to PATH;
 - better check for old-style color schemes file.

For Vim:
 - added g:vifm_exec_args variable for the plugin.

Other changes:
 - added --select command line argument;
 - added --remote command line argument;
 - added support for character classes in globals;
 - restore terminal title on exit;
 - reset dot and filename filters if they hide bookmarked file;
 - made vifm react faster on external changes.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

November 15, 2011
=================

vifm v0.7.1
-----------

Major changes since v0.7.0:
 - changed meaning of :split command (so replace it with :vsplit in your
   vifmrc);
 - added backgrounding of :copy, :move, :delete, ga and gA commands;
 - added horizontal splitting and keys to control size of the panes;
 - added less-like view mode;
 - made some changes to the Vim plugin;
 - windows version was made much more usable.

Changes in details

:set command and options:
 - added 'scrollbind', 'wrapscan', 'incsearch', 'cpoptions', 'laststatus' and
   'tabstop' options;
 - make 'ignorecase' and 'smartcase' affect f and F;
 - don't use position in the view on ' key, when 'autochpos' is off.

Angle bracket notation:
 - added support for more angle bracket notations in mappings (<bs>, <tab>,
   <s-tab>, <home>, <end>, <left>, <right>, <up>, <down>, <pageup>,
   <pagedown>, <del>, <delete>, <m-a>, <m-b>, ..., <m-z>);
 - added <s-f1>, ..., <s-f12>, <a-f1>, ..., <a-f12>, <c-f1>, ..., <c-f12>,
   only for Windows;
 - added <a-X> as synonyms for <m-X> (where X is a key);
 - added angle bracket notation <c-s-X> and <s-c-X> as synonyms for <c-X>;
 - added Ctrl + Alt + letter combinations, only for Unix.

Command-line mode related changes:
 - added :split! to toggle between only and split view;
 - added :file to quick run one of associated commands;
 - added backgrounding of :copy, :move and :delete commands;
 - added :delete!;
 - added :execute, :source commands;
 - added support for using environment variables as :cd or :pushd arguments;
 - added support for :substitute command without arguments;
 - added notation to run internal vifm commands from user defined commands;
 - allowed exclamation mark for :view command (to prevent view closing);
 - allowed question mark for :mark command (to prevent bookmark overwriting).

Completion:
 - added completion of environment variables (:cd, :pushd, :! and :!!).

Normal and visual modes related changes:
 - added '(' and ')' keys for normal and visual modes;
 - added Ctrl-A and Ctrl-X keys (normal and visual modes);
 - added e key for normal mode;
 - made i key work in visual mode;
 - made ga and gA work in background;
 - better cW command;
 - clean selection after i key in normal mode.

Menus and dialogs:
 - added year in the file info dialog (on Ctrl-G);
 - added zh, zl, zH and zL keys for the menus (horizontal scrolling);
 - added ZQ and ZZ keys to close menus and dialogs.

TUI (Terminal User Interface):
 - added horizontal splitting of views (changed :split command, added :vsplit
   command, changed Ctrl-w s mapping);
 - added Ctrl-w j and Ctrl-w k keys;
 - added Ctrl-w <, Ctrl-w >, Ctrl-w + and Ctrl-w - keys;
 - added Ctrl-w | and Ctrl-w _ keys.

File cloning:
 - don't change file extension on cloning;
 - move cursor to clone of current file after file cloning;
 - smarter file name generation on cloning;
 - made C command accept count.

Only on Windows:
 - added kind of portable mode on Windows;
 - make macros expand to paths with forward slashes on Windows;
 - better check if directory was changed on Windows;
 - show all shares on Windows (including private ones);
 - fixed a lot of bugs on Windows.

For Vim:
 - added g:vifm_exec variable for the plugin;
 - added ftdetect plugin for vim (now there is no need for modelines or
   changing .vimrc);
 - allowed arguments for plugin's commands;
 - added more tags to the documentation in vim-help format.

Other changes:
 - added Ctrl-n (j) and Ctrl-p (k) keys;
 - added view mode (see documentation);
 - added -c and + command line arguments;
 - added support of [count] for / and ?;
 - don't clear terminal title on exit;
 - warn about symbolic links are not available;
 - don't show current file as selected after executing a :command and resizing
   terminal while it works;
 - show progress message (e.g. on :copy) after terminal is resized;
 - made some messages about operations more correct.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

September 29, 2011
==================

vifm v0.7.0 is out!
-------------------

And as it was promised vifm is back on Windows!

This release breaks compatibility a little, which was done intentionally to
make vifm more vi-like.  I hope that won't make too much discomfort for users,
at least I tried to reduce discomfort as much as I can.  In particular, an
utility program named vifmrc-converter is shipped with vifm now.  It's main
purpose is to automatically convert configuration files (vifmrc, vifminfo,
startup and colorschemes files) to new format.  You don't have to run it by
yourself, vifm will do this for you after asking some questions at first
startup.

Here are the main changes by categories.

Configuration:
 - changed format of ~/.vifm/vifmrc and ~/.vifm/vifminfo files;
 - removed support of startup file, all commands will be automatically moved
   to the vifmrc file;
 - added support for multi line commands in the vifmrc (ex-startup) file;
 - now users can place scripts for vifm to ~/.vifm/scripts, vifm modifies its
   PATH environment variable to let user run scripts without specifying full
   path;
 - now vifm also accepts paths to files as the startup arguments and
   --no-configs option.

Normal and visual modes related changes:
 - added gf, al, rl and cl commands for dealing with symbolic links;
 - added gu and gU commands (and their variations);
 - added gs command to work with t selection like gv with visual mode
   selection;
 - made C handle selection, check read permission and work in visual mode;
 - changed the way l key handles selection and made it work in visual mode.

Command-line mode related changes:
 - removed :cmdhistory command, use :history cmd or ":history :" instead;
 - added :noremap, :cnoremap, :nnoremap, :vnoremap, :unmap, :cunmap, :nunmap
   and :vunmap commands;
 - added :filetype, :filextype and :fileviewer commands;
 - added :find and :grep commands;
 - added :substitute and :tr commands;
 - added :clone, :copy, :move, :alink and :rlink commands;
 - added :chmod, :chown, :mkdir and :touch commands;
 - added :mark, :delmarks, :comclear, :highlight, :restart and :messages
   command;
 - documented command line keys and marked which :commands accept ranges;
 - now vifm understands user name after tilde in paths;
 - let user use short forms of user-defined commands with "!".

Completion:
 - added completion for co, cg, cw and cW commands;
 - sort completion items;
 - shift-Tab command line key to perform completion in reversed order;
 - added Ctrl-_ command-line key to reject completion.

Macros:
 - added filename modifiers (:p, :~, :., :h, :t, :r, :e, :s and :gs);
 - added %S and %M macros;
 - added macros that are expanded to paths enclosed in double quotes (%"c,
   %"C, %"f, %"F, %"b, %"d and %"D);
 - handle %m, %M, %s and %S in the :! command.

:set command and options:
 - removed 'savelocation' option. Use :set vifminfo+=dhistory;
 - added 'wildmenu', 'ignorecase', 'smartcase', 'hlsearch', 'vifminfo',
   'shell', 'vixcmd', 'scrolloff', 'timeoutlen', 'autochpos','gdefault',
   'slowfs' options;
 - added abbreviations for options;
 - added support for using ':' instead of '=';
 - support for ':set' and ':set all' commands;
 - made ':set option' equivalent to ':set option?' for all types of options
   except boolean;
 - made 'history' option control search, command line and prompt histories;
 - better 'sort' option (support by multiple sort keys, added iname key);
 - made 'vicmd' and 'vixcmd' understand & at the end;
 - :set command now understands & (reset option to its default value).

Color scheme related changes:
 - all color schemes are stored under the ~/.vifm/colors/ directory, each
   color scheme in its own file;
 - color scheme file is a list of commands. All command-line commands are
   handled, but only :highlight commands are really useful here;
 - added colors for current top line, other top line, status line, error
   messages in the status bar, broken links and FIFO files;
 - now maximum number of color schemes is unlimited even on 8-color terminals
   (there was a limit of 5 color schemes for such terminals before).

Only on Windows:
 - gl normal mode key;
 - UNC names support;
 - :volumes command.

For Vim:
 - added g:vifm_term variable for the plugin;
 - added vifmrc syntax and filetype files for Vim;
 - tags for some items in the help file for Vim.

Other changes:
 - let user go through directories with execute access, but no read access;
 - made filetype understand star as in globals;
 - removed duplicates from command and directory history;
 - made directory, command line and search histories as well as dirstack and
   registers persistent (when 'vifminfo' option contains appropriate value);
 - show search matches in the menus;
 - now keys can be used in mappings and mapping of keys like y, d or m works
   right;
 - modify terminal emulator title;
 - don't quit when terminal is too small (print message and ignore input);
 - fixed bugs.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

July 20, 2011
=============

vifm-0.6.3
----------

Main changes in vifm-0.6.3:
 - added another format for filetype (FUSE_MOUNT2);
 - added %CLEAR FUSE mount parameter.  See vifmrc for details;
 - added %c and %C macros (current file of current and other directories, not
   selected file or files);
 - added :rename command (opens vi to let you edit names for selected file or
   files);
 - added undo list (u, Ctrl-R and :undolist commands; 'undolevels' option);
 - added small FAQ;
 - added gA command (like ga, but forces update);
 - added whole line comments (can be useful in startup file);
 - added :dirs command (shows directory stack);
 - added 'sortnumbers', 'followlinks', 'fusehome', 'confirm' and 'history'
   options;
 - added dialog to ask user about backwards range in command;
 - added some vi like keys for menus, dialogs and visual mode;
 - added 'savelocation' option (start vifm in the last visited directory)
   which is off be default thus returning old behaviour when vifm is started
   with no argument;
 - added gv command for visual mode;
 - enter key in visual mode will leave it saving selection;
 - now location of panes is saved in ~/.vifm/vifminfo instead of
   ~/.vifm/vifmr;
 - now builtin keys can be remapped;
 - don't replace escape sequences for :! and :!! commands;
 - more vi like completion and history in command line and search;
 - some improvements for :filter command;
 - some improvements for command ranges;
 - now ranges modify %f macro for user defined commands;
 - made f and F work with wide characters;
 - made option parser handle quotes;
 - rename files in Trash (to avoid name conflicts);
 - don't terminate background processes on vifm exit;
 - remove files that are in the Trash on :empty command from all registers;
 - don't ignore Ctrl-Z;
 - don't clear screen on shellout;
 - updated Vim plugin;
 - fixed a lot of bugs;

See ChangeLog for details.  Also see THANKS file that was added in this
release.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 19, 2011
=============

vifm-0.6.2
-----------

This release fixes some bugs and adds several commands for different modes.

Main changes:
 - added map menus (run :cmap, :vmap, :nmap commands without arguments);
 - added :cmdhistory command;
 - added 'fastrun' option;
 - added o and O keys for Visual mode (go to other end of selection);
 - added gv Normal mode command;
 - added support for spaces and functional keys in mappings (<space> and
   <f0> - <f63>);
 - added mimetype to fileinfo dialog;
 - added %b command macro;
 - implemented :yank and :colorscheme commands;
 - made filetype menu editable;
 - restore SIGINT (Ctrl+C) default behaviour on shellout;
 - replace escape sequences in quick view output with ^foo;
 - give options if a file already exists in destination directory;
 - unmount all FUSE mounts on exit;
 - more verbose version information;
 - added Ctrl-C key handling to error message dialog;
 - use file command when GTK+ and libmagic are disabled;
 - better error messages;
 - use ga command results to sort by size;
 - fixed paths in config.c to work with non standard install prefix;
 - fixed several bugs with command completion and terminal resizing.

See ChangeLog for details and AUTHORS for information about authors.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

June 11, 2011
=============

Vifm-0.6.1 is available.
------------------------

Windows version remains unchanged for now.  I'm planning to use one code base
for both Unix and Windows platforms and it would take some time to do that.

Major changes since 0.5:
 - added support for user mappings;
 - added file selectors (like motions and text-objects);
 - improved sort dialog;
 - added filetype detection using GTK+ or libmagic (:file);
 - added directory stack (:pushd, :popd);
 - added completion for :! and :!! commands;
 - added custom file viewers (:view);
 - added startup file;
 - better utf8 support;
 - added :set command and options.

See ChangeLog for details.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

August 7, 2009
==============

Vifm-0.5 is available.
----------------------

This release is mainly user contributed patches and a new port for Windows.
A filetype setting was added to allow the mounting of files with fuse-zip and
other filesystems based on fuse.  The :com input was changed to accept wide
characters.  The Windows port is missing some of the features of the Unix
version but it is useful and stable enough for an initial release.  The
following commands were added in the Windows port:
 - :copy;
 - :move;
 - :volume - list mounted volumes.
