Contrasted with other nmh commands, a message argument to mhpath may often be intended for writing. Because of this:
Message numbers greater than the highest existing message in a folder as part of a range designation are replaced with the next free message number.
Examples: The current folder foo contains messages 3 5 6. Cur is 4.
% mhpath /r/phyl/Mail/foo % mhpath all /r/phyl/Mail/foo/3 /r/phyl/Mail/foo/5 /r/phyl/Mail/foo/6 % mhpath 2001 /r/phyl/Mail/foo/7 % mhpath 1-2001 /r/phyl/Mail/foo/3 /r/phyl/Mail/foo/5 /r/phyl/Mail/foo/6 % mhpath new /r/phyl/Mail/foo/7 % mhpath last new /r/phyl/Mail/foo/6 /r/phyl/Mail/foo/7 % mhpath last-new bad message list ``last-new''. % mhpath cur /r/phyl/Mail/foo/4 % mhpath 1-2 no messages in range ``1-2''. % mhpath first:2 /r/phyl/Mail/foo/3 /r/phyl/Mail/foo/5 % mhpath 1 2 /r/phyl/Mail/foo/1 /r/phyl/Mail/foo/2
mhpath is also useful in back-quoted operations:
% cd `mhpath +inbox` % echo `mhpath +` /r/phyl/Mail
^$HOME/.mh_profile~^The user profile
^Path:~^To determine the user's nmh directory ^Current-Folder:~^To find the default current folder
`+folder' defaults to the current folder `msgs' defaults to none
mv `mhpath 501 500`
to move 501 to 500. Quite the reverse. But
mv `mhpath 501` `mhpath 500`
will do the trick.
Out of range message 0 is treated far more severely than large out of range message numbers.