External software dependencies removed: sed and xargs. Sed shell escaping is handled automatically with perl symlink function. The xargs usage is specific to gnu xargs (fails on bsd xargs, etc). NOTE: The current query pulls the list of files into an array all at once. The larger the list the more memory used. --- contrib/notmuch-mutt/notmuch-mutt | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/notmuch-mutt/notmuch-mutt b/contrib/notmuch-mutt/notmuch-mutt index 424f9a3..c995022 100755 --- a/contrib/notmuch-mutt/notmuch-mutt +++ b/contrib/notmuch-mutt/notmuch-mutt @@ -12,6 +12,7 @@ use strict; use warnings; use File::Path; +use File::Basename; use Getopt::Long qw(:config no_getopt_compat); use Mail::Internet; use Mail::Box::Maildir; @@ -41,9 +42,11 @@ sub search($$) { $query = shell_quote($query); empty_maildir($maildir); - system("notmuch search --output=files $query" - . " | sed -e 's: :\\\\ :g'" - . " | xargs --no-run-if-empty ln -s -t $maildir/cur/"); + my @filelist = `notmuch search --output=files $query`; + foreach(@filelist) { + chomp; + symlink($_, "$maildir/cur/" . basename($_)); + } } sub prompt($$) { -- 1.7.7.4