]> granicus.if.org Git - neomutt/commit
browser: <change-dir> mutt_realpath() <goto-parent> 1037/head
authorMichael J. Bazzinotti <mbazzinotti@gmail.com>
Wed, 31 Jan 2018 17:20:05 +0000 (12:20 -0500)
committerRichard Russon <rich@flatcap.org>
Thu, 1 Feb 2018 14:51:10 +0000 (14:51 +0000)
commit118ebdcb95da8f23e0ead3b210f1dc01653dd92e
treea4cead48850d634a8dc3f9f00c64c7975bb7b426
parent460107576abb16991d06e3b644bacde01238c21d
browser: <change-dir> mutt_realpath() <goto-parent>

For "regular" filesystems (not IMAP or Notmuch folder hierarchies),
<change-dir> and the browser GUI now resolve paths via a new mutt library
function `mutt_realpath`. This means no more path buildup such as
"a/b/../../c". Additionally, Symlinks are resolved automatically. This is
a circumstance of realpath(). Note that a future PR is planned to add a
non-symlinking option.

The new <goto-parent> function has a default shortcut key of 'p' for parent.
Since this function uses the pre-existing `mutt_get_parent_path()`,
<goto-parent> may also work on IMAP and Notmuch folder hierarchies
(tested and working on IMAP)

Note: The paths passed to `mutt_get_parent_path()` formerly would not
parse correctly a path which included a final trailing slash (eg 'abc/')
So, I added it a check to that function to remove it before hitting
the parser.

Note2: The browser for IMAP was janky before this commit, but the browser
is not the primary mailbox navigation tool, afterall. At least 'p'
<goto-parent> adds to its functionality. I expect a similar evaluation for
Notmuch folder browsing, although I have never used Notmuch. Any
contributions to make a better IMAP/Notmuch folder browsing experience
are welcome. I have reported some of the fallbacks in Github PR #1037
comments (look for IMAP headlines).
browser.c
functions.h
muttlib.c
opcodes.h
protos.h