refile: Never change the current folder
authormarkus schnalke <meillo@marmaro.de>
Thu, 21 Apr 2016 14:43:25 +0000 (16:43 +0200)
committermarkus schnalke <meillo@marmaro.de>
Thu, 21 Apr 2016 14:43:25 +0000 (16:43 +0200)
commita8984c0e490cda653615bc0e1d4743ad8fe7a2a7
tree5acedb3ff55c271b71fb4253d6522bc8afbd55ee
parent3244935a74559715749a60c03e7b608a227e0438
refile: Never change the current folder

Refile is different to all other tools, as its +folder arguments
are destination folders, not source folders (it even supports
multiple of them). A source folder can be specified with -src.
Refile used to change the current folder to the source folder.
It does not do so anymore.

Most often the current folder is used as the source folder; this is
the default. Hence changing the current folder is a no-op. But if
one refiles from some other source folder, changing to that folder
is seldom useful. Consider the scenario where one wants to collect
the last messages of a set of folders in some other folder. The
old behavior required to know where you are to collect the messages,
because after the first refile you'd be somewhere else:

for i in one two three ; do
refile -src +$i l +lastmsgs
done
# now we are in +three, hence go back where we were
folder +lastmsgs

The new behavior allows to move the messages just here (@), no
matter where that is:

for i in one two three ; do
refile -src +one l @
done
# now we still are where we were

Refiling actions do no more affect the current folder, hence one
may securely refile with different -src +folder many times in one
row, without having to care for changing locations.
man/refile.man1
test/tests/refile/test-refile [new file with mode: 0755]
uip/refile.c