From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Non file buffers and default-directory Date: Thu, 27 Apr 2023 14:14:39 +0300 Message-ID: <83sfclshk0.fsf@gnu.org> 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> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28519"; mail-complaints-to="usenet@ciao.gmane.io" 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 13:14:39 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 1prza9-0007E2-6D for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 27 Apr 2023 13:14:37 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1przZk-0000lo-Tm; Thu, 27 Apr 2023 07:14:12 -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 1przZh-0000kw-SQ for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 07:14:10 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1przZh-0008W9-KM for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 07:14:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=I/5Hly0EmUO0D0UvCo0OYm5bgD8Jf+x90gMa20vKR7A=; b=Jj1inVdorkJT kc00b3pGvez9jbLENS/gBDRtE0yhYxsYwHgYo8eCiwTuA79bHTqRy42RyisqAPUN+wjqBchvC91Cm FcL/btyR0OI0BeheLPMhvcvuO/ln+fQhOep8qnHv7eAxIb5zCf3Nm40Cf67g035ANa4XdZ5q8373+ z/HtduoAlhdAf9xXrLxhqr8/K6uBq5ooLz8lknQ1I89ngjkOo9CILsxp9epGL7a6eDohImzoCbUpe zFlGOJqZ6cM7Zv2Hi2OPom4Lqua1IRgU+4fzb+9LXzsh6zKtryq25DSV96G9c1hVPkKmHWsGWVPmp AcEbJfbgc8re4CNnYJQ0eg==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1przZg-0006qJ-5C for help-gnu-emacs@gnu.org; Thu, 27 Apr 2023 07:14:09 -0400 In-Reply-To: <87bkj9ioc8.fsf@ledu-giraud.fr> (message from Manuel Giraud on Thu, 27 Apr 2023 12:58:15 +0200) 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:143418 Archived-At: > From: Manuel Giraud > Cc: help-gnu-emacs@gnu.org > Date: Thu, 27 Apr 2023 12:58:15 +0200 > > 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.