Re: notmuch-insert Fcc handling w/spaces in dir name
On Mon, 2016-10-10 at 20:20 +0100, Mark Walters wrote: > On Mon, 10 Oct 2016, Keith Amidonwrote: > > > > I was able to make this work by setting notmuch-fcc-dirs to: > > > > "\"[Gmail]/Sent Mail\" +sent -inbox -unread" > > That is correct and this should probably be documented. After Mark and Tomi's hints I read the code more closely and really understand why my setting actually works and why this is actually an intended behavior. Given that it doesn't actually depend on passing through the shell quoting, supports oddball folder names with spaces in them, and makes it easy to continue to support sender-based Fcc selection (which I also expect to want to use eventually), I'm happy with it as is. I'll send a suggested documentation patch to the list to make it easier to discover the behavior shortly. Thanks for the help! --- Keith ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch
Re: notmuch-insert Fcc handling w/spaces in dir name
On Mon, 10 Oct 2016, Keith Amidonwrote: > I just upgraded to 0.23 and tried out the Fcc handling using notmuch- > insert. I think this is a significant improvement and I'm excited to > use it. I have it working successfully for my use case now, but it > did require one workaround that I didn't expect and that seems somewhat > fragile. > > The issue is that I'm synchronizing with Gmail and I'd like my sent > mail to be synchronized too. Therefore I have to insert into the > directory Gmail expects, which is "[Gmail]/Sent Mail". Notice the > space in the directory name. > > I was able to make this work by setting notmuch-fcc-dirs to: > > "\"[Gmail]/Sent Mail\" +sent -inbox -unread" That is correct and this should probably be documented. > This works because the Fcc handling constructs a shell command to run > by just appending the notmuch-fcc-dirs value to (in the simple case) > "notmuch-insert --folder=", so the extra double quotes in my notmuch- > fcc-dirs value quote things appropriately at the shell level. I don't think this is correct. I think the fcc line gets split using split-string-and-unquote and passes the arguments to notmuch insert using call-process; I don't think it goes via shell. > While this works, depending on passing through shell quoting seems very > fragile. Changes in the implementation could break this solution > without it being obvious why. It seems like it would be better if the > notmuch-fcc-dirs value could be something like: > > ("[Gmail]/Sent Mail" "+sent" "-inbox" "-unread") This is possible. However, in the current form it is possible for the user to edit the fcc header before sending, and that has to be a string. Now, we could do as you suggest, and use combine-and-quote-strings to make the fcc header. Note, it is going to make things pretty complex if we still want to allow the folder to specified based on the from address. > Then the code could generate the shell command with appropriate > quoting. I took a quick look at implementing this but it looked more > complicated then I had time to invested right now. I thought it would > be good to get the issue out for discussion ASAP since this new > functionality was just released. Thanks: yes if we want to do the above it should be soon. Best wishes Mark ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch
Re: notmuch-insert Fcc handling w/spaces in dir name
On Mon, Oct 10 2016, Keith Amidonwrote: > I just upgraded to 0.23 and tried out the Fcc handling using notmuch- > insert. I think this is a significant improvement and I'm excited to > use it. I have it working successfully for my use case now, but it > did require one workaround that I didn't expect and that seems somewhat > fragile. > > The issue is that I'm synchronizing with Gmail and I'd like my sent > mail to be synchronized too. Therefore I have to insert into the > directory Gmail expects, which is "[Gmail]/Sent Mail". Notice the > space in the directory name. > > I was able to make this work by setting notmuch-fcc-dirs to: > > "\"[Gmail]/Sent Mail\" +sent -inbox -unread" > > This works because the Fcc handling constructs a shell command to run > by just appending the notmuch-fcc-dirs value to (in the simple case) > "notmuch-insert --folder=", so the extra double quotes in my notmuch- > fcc-dirs value quote things appropriately at the shell level. > > While this works, depending on passing through shell quoting seems very > fragile. Changes in the implementation could break this solution > without it being obvious why. It seems like it would be better if the > notmuch-fcc-dirs value could be something like: > > ("[Gmail]/Sent Mail" "+sent" "-inbox" "-unread") > > Then the code could generate the shell command with appropriate > quoting. Actually it looks like (also by quick look) that the elisp code does not generate shell command with appropriate quoting, but first splits the line with (split-string-and-unquote fcc-header) (*) and then creates command line arguments based on that list... (*) line 235 in notmuch-maildir-fcc.el so, it could be somewhat trivial to allow fcc-header to be either string or list -- and in the latter case use something like you presented above… Tomi > I took a quick look at implementing this but it looked more > complicated then I had time to invested right now. I thought it would > be good to get the issue out for discussion ASAP since this new > functionality was just released. > > Cheers! Keith > > > ___ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch