From: Tim Landscheidt <tim@tim-landscheidt.de>
To: help-gnu-emacs@gnu.org
Subject: Re: Non file buffers and default-directory
Date: Thu, 27 Apr 2023 12:04:48 +0000 [thread overview]
Message-ID: <87354lwmxr.fsf@vagabond.tim-landscheidt.de> (raw)
In-Reply-To: <83sfclshk0.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 27 Apr 2023 14:14:39 +0300")
Eli Zaretskii <eliz@gnu.org> wrote:
>> Thanks for your support. I'm reading some code now and I start to
>> realize that *just* having an async SMTP sender in Emacs won't be that
>> easy.
>> An example: I'm using Gnus (and message.el) to send mail. If you look
>> at 'message-send' (lisp/gnus/message.el#4396), that I guess is calling
>> 'smtpmail-send-it' down the line, you'll see that it is "waiting" for a
>> synchronous 'success' to decide what to do next (for example, renaming
>> the buffer from *unsent...* to *sent...*). This won't work as is with
>> an async SMTP sender. I imagine that there are other places with code
>> like that and that it could break many workflow.
> I know it is not easy, right? Basically, the function(s) that
> actually send the email will have to be broken into two: one that
> prepares the message, the other which actually sends it. It's the
> latter that needs to run from a separate thread. in addition, there
> should be some callback that marks the message as sent, and does
> whatever else bookkeeping is needed when the send succeeds or fails,
> like, for example, if this is a response, marking the original message
> as one that was replied-to.
Side note: I would love a well-maintained example of an
"asynchronous" user interface in Emacs.
I have a bunch of shell/Perl/Python scripts that I'd like to
convert to Emacs Lisp for a consistent UI that can also be
used over SSH.
For example, I have a script that plays a podcast's audio
file and afterwards asks me if the associated database entry
selected from a list of suggestions should be marked as
heard (and the file archived). I also use this as part of
sequences, i. e. "$script file1.mp3 && $script file2.mp3".
Now in Emacs, I obviously would want to continue to work on
something else while the audio is playing in the background.
I also don't want that other work to be interrupted in the
sense of a blocking minibuffer prompt when the playback has
finished. And I also don't want to accidentally quit Emacs
without me being reminded, "hey, that playback has finished,
should it be marked as heard?" And I want that "bit" to be
usable as part of a sequence, i. e. after answering the
question, the next statement should be executed.
Probably, one can achieve something like this with promises
(e. g., https://github.com/chuntaro/emacs-promise), but as
they are not part of core Emacs and also rather complex, I
don't feel very comfortable to base my workflows on that.
Tim
next prev parent reply other threads:[~2023-04-27 12:04 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 18:29 Non file buffers and default-directory Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-18 19:12 ` Emanuel Berg
2023-04-19 7:02 ` Michael Albinus
2023-04-19 8:14 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-19 10:48 ` Emanuel Berg
2023-04-19 12:32 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-19 12:48 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-19 15:17 ` Michael Albinus
2023-04-20 15:11 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-20 17:12 ` Emanuel Berg
2023-04-21 6:31 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-23 14:33 ` Emanuel Berg
2023-04-24 7:57 ` Michael Albinus
2023-04-25 12:06 ` Emanuel Berg
2023-04-21 6:39 ` Marcin Borkowski
2023-04-21 7:16 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-21 8:01 ` Michael Albinus
2023-04-21 9:03 ` Marcin Borkowski
2023-04-21 10:29 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-22 7:08 ` Michael Albinus
2023-04-22 13:56 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-22 16:36 ` Eli Zaretskii
2023-04-22 17:33 ` Manuel Giraud
2023-04-23 7:22 ` Michael Albinus
2023-04-23 7:46 ` Eli Zaretskii
2023-04-23 11:24 ` Manuel Giraud
2023-04-23 12:57 ` Eli Zaretskii
2023-04-23 11:46 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-23 13:01 ` Eli Zaretskii
2023-04-23 14:48 ` Thread for smtpmail-send-it (was: Non file buffers and default-directory) Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-23 15:56 ` Eli Zaretskii
2023-04-25 17:00 ` Non file buffers and default-directory Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-25 17:27 ` Eli Zaretskii
2023-04-25 17:54 ` Emanuel Berg
2023-04-27 6:05 ` Eli Zaretskii
2023-04-27 19:46 ` Emanuel Berg
2023-04-28 11:34 ` Eli Zaretskii
2023-05-01 2:10 ` Emanuel Berg
2023-05-01 11:20 ` tomas
2023-05-01 22:15 ` Emanuel Berg
2023-05-04 17:49 ` tomas
2023-05-04 23:26 ` Emanuel Berg
2023-05-01 11:55 ` Eli Zaretskii
2023-04-27 10:58 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-27 11:14 ` Eli Zaretskii
2023-04-27 12:04 ` Tim Landscheidt [this message]
2023-04-27 12:30 ` Eli Zaretskii
2023-04-28 1:08 ` Tim Landscheidt
2023-04-27 18:53 ` Tomas Hlavaty
2023-04-28 2:03 ` Tim Landscheidt
2023-04-27 15:29 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-27 18:52 ` Tomas Hlavaty
2023-04-22 17:34 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-22 17:31 ` Michael Albinus
2023-04-21 12:54 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-26 17:17 ` Michael Albinus
2023-04-27 9:25 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-04-19 10:39 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87354lwmxr.fsf@vagabond.tim-landscheidt.de \
--to=tim@tim-landscheidt.de \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.