From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Landscheidt Newsgroups: gmane.emacs.help Subject: Re: Non file buffers and default-directory Date: Thu, 27 Apr 2023 12:04:48 +0000 Organization: https://www.tim-landscheidt.de/ Message-ID: <87354lwmxr.fsf@vagabond.tim-landscheidt.de> References: <87edohf3ip.fsf@ledu-giraud.fr> <87zg745p85.fsf@gmx.de> <87y1moe1aa.fsf@ledu-giraud.fr> <87v8hr6gvl.fsf@gmx.de> <874jpa611r.fsf@ledu-giraud.fr> <87v8hprb5w.fsf@mbork.pl> <87zg714qb8.fsf@gmx.de> <87pm7xplz3.fsf@ledu-giraud.fr> <87r0sc4cmv.fsf@gmx.de> <87ttx810mz.fsf@ledu-giraud.fr> <831qkb27st.fsf@gnu.org> <87pm7v256a.fsf@univ-nantes.fr> <87cz3vukop.fsf@gmx.de> <83leijyrb2.fsf@gnu.org> <87pm7u95yf.fsf@gnu.org> <83fs8qzrab.fsf@gnu.org> <87cz3r28ye.fsf@ledu-giraud.fr> <83ildjvply.fsf@gnu.org> <87bkj9ioc8.fsf@ledu-giraud.fr> <83sfclshk0.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4322"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Apr 27 14:05:33 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ps0NQ-0000zN-PY for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 27 Apr 2023 14:05:32 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ps0Mt-00079w-21; Thu, 27 Apr 2023 08:04:59 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ps0Mo-00078Y-Uu for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 08:04:55 -0400 Original-Received: from andalucia.tim-landscheidt.de ([2a01:4f8:1c1c:d4d0::1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ps0Mm-00022w-Qm for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 08:04:54 -0400 Original-Received: from [195.226.160.202] (port=57980 helo=vagabond) by andalucia.tim-landscheidt.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ps0Mj-00010x-79 for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 12:04:49 +0000 In-Reply-To: <83sfclshk0.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 27 Apr 2023 14:14:39 +0300") Received-SPF: pass client-ip=2a01:4f8:1c1c:d4d0::1; envelope-from=tim@tim-landscheidt.de; helo=andalucia.tim-landscheidt.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:143420 Archived-At: Eli Zaretskii 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