help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to pipe text or load a file directly into mail-mode?


From: Giorgos Keramidas
Subject: Re: How to pipe text or load a file directly into mail-mode?
Date: Thu, 04 May 2006 23:49:23 +0300
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (berkeley-unix)

On Thu, 4 May 2006 20:46:32 +0100, Adam Funk <a24061@yahoo.com> wrote:
> On 2006-05-04, Ralf Fassel <ralfixx@gmx.de> wrote:
>> Well, via '-nw' you tell emacs to use the tty as input, but the tty is
>> already used by perl.  Do you really need '-nw'?  If you really need
>> -nw, you could try something along the lines of
>>
>>   system("emacs -nw $tempfile -f mail-mode </dev/tty");
>>
>> I.e. use shell input redirection to the controlling tty.  I have no
>> idea how robust that would be, and would rather get rid of the '-nw'.
>
> Maybe it would help if I explained what I'm *really* trying to do.  I
> get usenet access by opening an xterm, logging into a server and
> running slrn.  I really like like slrn except that I can't customize
> forwarding articles by e-mail the way I'd like, so I want to bind a
> slrn key to a command that just pipes the current article to an
> external program.
>
> That external program I want to be a Perl script that puts some stuff
> at the beginning of the article, prefaces it with my custom headers,
> and then opens it in Emacs in mail-mode (so I can use my ~/.mailrc
> aliases and all the other great stuff that Emacs does).  Maybe I need
> to store the article in a /tmp file then load it into the Perl
> program, instead of piping it into the program's STDIN.

You don't need Perl for that, I guess.  It's fairly easy to write a
function in Elisp that does all you need and call it at Emacs startup,
i.e. a _very_ simplistic one could be:

| (defun slrn-setup-post (&optional filename)
|   "Load a file and set things up for posting it as a `mail'
|   message through Emacs."
|     (interactive)
|       (if filename
|           (insert-filename))
|       (beginning-of-buffer)
|       (insert-string "From: foo@bar.example.net\n\n")
|       (mail-mode))

Then you can set up slrn to use as its `$EDITOR' your Emacs wrapper
script, which would run:

    emacs filename -f slrn-setup-post

No need for Perl if you have the full Elisp languaeg at your hands :)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]