please, let me up this one.
On Tue, Oct 27, 2015 at 01:45:49PM -0300, Raph wrote: > Hi, > I'm trying to change $from and $sendmail when in the compose menu. > > For this, in my muttrc I use: > > set from=foo sendmail=foo > > color status yellow blue > > macro compose "L" "<enter-command>source > > ~/other-account<enter><edit-from><kill-line>$from<enter>" > > Where ~/other-account contains > > set from=bar sendmail=bar > > color status red blue > > macro compose "L" "<enter-command>source > > ~/muttrc<enter><edit-from><kill-line>$from<enter>" > > > The issue is the expansion of $from which happens during the evaluation of the > double-quoted string. This is too soon. It would have to be delayed to after > `source` > has been evaluated so that $from takes the new and expected value. > > - Single quote does not do the work. $from isn't expanded > - neither does escaping $variable with backslash (appear as-is) > - Using a plain `push` inside ~/other-account is possible, but it's not an > option > for muttrc which is evaluated in other contexte > - I don't split a chunk of muttrc' configuration inside yet another file > - I don't want to hardcode/duplicate $from value of the muttrc inside > the macro written inside ~/other-account > > > I then hoped I could simulate a late expansion using something like: > > macro compose "L" '<enter-command>source > > ~/muttrc<enter><edit-from><kill-line>push "$from";<enter>' > (notice the push + single quotes) > > But I didn't understood how it could look like. > I tried various things starting with: > > macro compose "L" 'push s' > but this adds a magic "<enter>" command like if I had written "<enter>s". > Can't deal with this. > > > Thus: > - how could I delay variable expansion inside a macro? > - is the `push` within the `macro` a viable workaround? > - how would that look like? > > > Thank you!
