Received: (at 73100) by debbugs.gnu.org; 7 Sep 2024 18:22:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 14:21:59 2024 Received: from localhost ([127.0.0.1]:57598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sn04N-0004Fh-0X for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 14:21:59 -0400 Received: from mail-oa1-f54.google.com ([209.85.160.54]:61854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <riza.dindir@HIDDEN>) id 1smy3J-0005On-Ju for 73100 <at> debbugs.gnu.org; Sat, 07 Sep 2024 12:12:46 -0400 Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-277cfd3f07aso1410520fac.3 for <73100 <at> debbugs.gnu.org>; Sat, 07 Sep 2024 09:12:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725725499; x=1726330299; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wkpdHm1DhdR+OUZwSFSsdGHrKf60/yX1bq84mvyfP8Q=; b=ayxadLPpkqNP8vGNfQjZ57FwDSKVrp92QkAZ1DAMdcraYUn9jdghOOO1RznKu/L7N2 8hNNm4nSmgM1H44rY3NNZOwh1Vn/DilY56jAwr5Kl06sOQojV5PVpMVZQDiPfFblWx/+ seljn2333BVQyg9eUbmvi8u1v8R2fkWwOvs/UElue45JDWrRcNQzIQTRMBnm5zGmVI/3 Gy5oNZsKx5AoI3YZof9neE7Q4pxMKbOC5e6wadztUqHZibg6hZX2+fZ19Mz/5v2XjxPL YI26VHWkCXq2Cp1XaEbR0CFC5Zv1Y4aakIdW7fbXolUTdSnaOlDumuraC1/+nEHYXb/U lmIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725725499; x=1726330299; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wkpdHm1DhdR+OUZwSFSsdGHrKf60/yX1bq84mvyfP8Q=; b=Hyf6aG7FlIzoTAzwSE8C18l2Tuc2VV/M1D94MZASqlr2WwvfCY36k22+xgRTgjvP2A 9lLmjtfXlXamZtwMnsKocaAsc5N8kPPMmcZGH+9GPuqdf1muKWj4CnD8XeFNLqmCLyJG UuEcwVP9OJN4Nsu5pJD3LTbgN2Nsj0hMfadHNJdsVMer8vxyVEgiQUjdc8zx/HZdLliu E5REp+J31tiSe/kf8MUV+UqCl6ysAl3xN/TaSunvYprRg2TN5fmVFt0vGTuE3yBVla92 yx9sZIN2oKGrUMToPOtQQos8MgCxEXQp/a6epJm+LZS/yFt/gSMgbFhpJWP0zgofOO9A fbdQ== X-Gm-Message-State: AOJu0Yz6YssTCkuR6w6mANR0mk/7P2DTTeTDlG2dbekqi2iEJ54vThrm ZIk0gT6lHA3aqJjW9DdNQjPprOhYaVoECBJxji+eTulLLVFWZet+dfOHaG6Nlj+AVDdDeJm5Si7 5hqGM6+VvG0yK8FfOD7uXwMZYVXp8Y+2sCa0= X-Google-Smtp-Source: AGHT+IHHTC+vNV+pj2mTiRjyUS6WeBdrgzrcxTMhycvjRy2J8AHC4Tt1PqZ5oJ/Cr6hTX5zT3Q2KtXYhl4gbWY7u2+4= X-Received: by 2002:a05:6870:c1cb:b0:278:252d:9ac9 with SMTP id 586e51a60fabf-27b9dc9fb8dmr1075573fac.45.1725725498967; Sat, 07 Sep 2024 09:11:38 -0700 (PDT) MIME-Version: 1.0 References: <CA+ek4BEgxpOHn-_1dV9VMTAyLenej9VkFQCMX_La-JWTwWKj=w@HIDDEN> <867cbnxzft.fsf@HIDDEN> In-Reply-To: <867cbnxzft.fsf@HIDDEN> From: Riza Dindir <riza.dindir@HIDDEN> Date: Sat, 7 Sep 2024 19:11:02 +0300 Message-ID: <CA+ek4BGBhpQX1b-A13ov7Ts7MOke7nEzVa1+C=p3b5oJrkagpA@HIDDEN> Subject: Re: bug#73100: Regarding a bug in suspend-emacs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="00000000000058905e062189c71f" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 73100 X-Mailman-Approved-At: Sat, 07 Sep 2024 14:21:52 -0400 Cc: 73100 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --00000000000058905e062189c71f Content-Type: text/plain; charset="UTF-8" Hello Eli, I am new to the code base, and it was just a suggestion to check for the ioctl call for any failures and take precautions, maybe inform the user of the issue that the suspend-emacs command did not run correctly. Since the command was not printing out anything when called with 'M-: (suspend-emacs "pwd")' I was not sure what was happening. For users that use the linux kernel 6.2+ the ioctl command does not work correctly. When the STUFFSTRING is passed to the suspend-emacs command, it does nothing. The problem with kernel 6.2+ is that it requires CAP_SYS_ADMIN capability (https://www.man7.org/linux/man-pages/man2/TIOCSTI.2const.html). In the code at some point suspend-emacs command calls stuff_char, which uses ioctl (code snippet below, from https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403). The ioctl call fails. But in the code there is no check for that, that might confuse people that use linux kernel 6.2+. I wanted to use suspend-emacs with "pwd" as the string (as shown in the example in the documentation in https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html). But the "pwd" command was not displaying anything. Because it was not being sent/stuffed to the superior process. /* Should perhaps error if in batch mode */#ifdef TIOCSTI ioctl (fileno (CURTTY()->input), TIOCSTI, &c);#else /* no TIOCSTI */ error ("Cannot stuff terminal input characters in this version of Unix");#endif /* no TIOCSTI */ I have downloaded the code for emacs 29.4 and compiled it with a simple error check and the ioctl call failed on my system silently (with kernel 6.6.47). To add a check is of course for the people who develop emacs to decide. I have seen the code today, and am not in a position to suggest anything at this stage. Maybe there would be a better way of handling this error. Adding an error check would be one of the solutions. The other solution might be to add a piece of information to the documentation for suspend-emacs, (and maybe to the documentation string for suspend-emacs) regarding this problem. So that people that use linux kernel 6.2+ would be aware of this issue. The issue is fixable by just setting the dev.tty.legacy_tiocsti sysctl variable to 1. This variable was set to 0 on my system. Hence the ioctl call for TIOCSTI was failing, and no indication of the error was given. After I have read the man page for TIOCSTI, and set the sysctl variable dev.tty.legacy_tiocsti to 1 was I able to call suspend-emacs with a STUFFSTRING and it worked. It was displaying the output of the "pwd" command. Regards Riza On Sat, Sep 7, 2024, 18:20 Eli Zaretskii <eliz@HIDDEN> wrote: > > From: Riza Dindir <riza.dindir@HIDDEN> > > Date: Sat, 7 Sep 2024 15:37:17 +0300 > > > > I am running Linux with kernel 6.6.47 and am running emacs in xterm, > using the -nw command line argument. > > > > I am new to emacs and was experimenting with the suspend-emacs command. > Following the example on > > > https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html > . > > > > When following the example, I added the suspend-resume-hook to my > .emacs.d/init.el file. When I run M-: > > (suspend-emacs "pwd") it does not show the current working directory. > But when I do fg from the terminal that I > > got into, I see the "Resumed!" message. > > > > I asked in the libera chat about that, and also in the gnu-help-emacs > list. I have been talking to wasamasa on > > libera chat (#emacs-beginners) and we pinpointed the problem to the > stuff_char function (in > > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403). We > came to this point from > > stuff_buffered_input ( > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11963), > and from > > suspend-emacs function definition (in > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11908). > > > > The stuff_char function is using ioctl with TIOCSTI. TIOCSTI requires > CAP_SYS_ADMIN capability. You can set > > this capability using sysctl setting dev.tty.legacy_tiocsti to 1. > > > > Unless I had set "dev.tty.legacy_tiocsti" to 1 I could not run the > suspend-emacs command with an argument > > string. > > > > Either emacs can check the return value of ioctl in stuff_char and if > there return value is EPERM, then handle > > this accordingly, with a message regarding the problem. > > You mean, you want suspend-emacs signal an error if it is called with > STUFFSTRING argument, but fails to stuff the string into the > terminal's input buffer? > --00000000000058905e062189c71f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"auto"><div>Hello Eli,<br></div><div><br></div>= <div>I am new to the code base, and it was just a suggestion to check for t= he ioctl call for any failures and take precautions, maybe inform the user = of the issue that the suspend-emacs command did not run correctly. Since th= e command was not printing out anything when called with 'M-: (suspend-= emacs "pwd")' I was not sure what was happening.<br></div><di= v><br></div><div>For users that use the linux kernel 6.2+ the ioctl command= does not work correctly. When the STUFFSTRING is passed to the suspend-ema= cs command, it does nothing. The problem with kernel 6.2+ is that it requir= es <span class=3D"gmail-im">CAP_SYS_ADMIN capability (</span><a href=3D"htt= ps://www.man7.org/linux/man-pages/man2/TIOCSTI.2const.html">https://www.man= 7.org/linux/man-pages/man2/TIOCSTI.2const.html</a>).</div><div><br></div><d= iv>In the code at some point suspend-emacs command calls stuff_char, which = uses ioctl (code snippet below, from <a href=3D"https://git.savannah.gnu.or= g/cgit/emacs.git/tree/src/sysdep.c#n403">https://git.savannah.gnu.org/cgit/= emacs.git/tree/src/sysdep.c#n403</a>). The ioctl call fails. But in the cod= e there is no check for that, that might confuse people that use linux kern= el 6.2+. I wanted to use suspend-emacs with "pwd" as the string (= as shown in the example in the documentation in <a href=3D"https://www.gnu.= org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html">https://ww= w.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html</a>).= But the "pwd" command was not displaying anything. Because it wa= s not being sent/stuffed to the superior process.<br></div><div><div><br></= div><div><pre><code><span class=3D"gmail-hl gmail-com">/* Should perhaps er= ror if in batch mode */</span> <span class=3D"gmail-hl gmail-ppc">#ifdef TIOCSTI</span> <span class=3D"gmail-hl gmail-kwd">ioctl</span> <span class=3D"gmail-hl g= mail-opt">(</span><span class=3D"gmail-hl gmail-kwd">fileno</span> <span cl= ass=3D"gmail-hl gmail-opt">(</span><span class=3D"gmail-hl gmail-kwd">CURTT= Y</span><span class=3D"gmail-hl gmail-opt">()-></span>input<span class= =3D"gmail-hl gmail-opt">),</span> TIOCSTI<span class=3D"gmail-hl gmail-opt"= >, &</span>c<span class=3D"gmail-hl gmail-opt">);</span> <span class=3D"gmail-hl gmail-ppc">#else</span> <span class=3D"gmail-hl gma= il-com">/* no TIOCSTI */</span><span class=3D"gmail-hl gmail-ppc"></span> <span class=3D"gmail-hl gmail-kwd">error</span> <span class=3D"gmail-hl g= mail-opt">(</span><span class=3D"gmail-hl gmail-str">"Cannot stuff ter= minal input characters in this version of Unix"</span><span class=3D"g= mail-hl gmail-opt">);</span> <span class=3D"gmail-hl gmail-ppc">#endif</span> <span class=3D"gmail-hl gm= ail-com">/* no TIOCSTI */</span></code></pre></div><div dir=3D"auto"><br></= div></div>I have downloaded the code for emacs 29.4 and compiled it with a = simple error check and the ioctl call failed on my system silently (with ke= rnel 6.6.47).<br></div><div dir=3D"auto"><br></div><div>To add a check is o= f course for the people who develop emacs to decide. I have seen the code t= oday, and am not in a position to suggest anything at this stage. Maybe the= re would be a better way of handling this error.</div><div><br></div><div>A= dding an error check would be one of the solutions.<br></div><div><br></div= ><div>The other solution might be to add a piece of information to the docu= mentation for suspend-emacs, (and maybe to the documentation string for sus= pend-emacs) regarding this problem. So that people that use linux kernel 6.= 2+ would be aware of this issue.</div><div><br></div><div>The issue is fixa= ble by just setting the dev.tty.legacy_tiocsti sysctl variable to 1. This v= ariable was set to 0 on my system. Hence the ioctl call for TIOCSTI was fai= ling, and no indication of the error was given. After I have read the man p= age for TIOCSTI, and set the sysctl variable=C2=A0dev.tty.legacy_tiocsti to= 1 was I able to call suspend-emacs with a STUFFSTRING and it worked. It wa= s displaying the output of the "pwd" command.<br></div><div><br><= /div><div>Regards</div><div>Riza<br></div><div dir=3D"auto"><br></div></div= ><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sa= t, Sep 7, 2024, 18:20 Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN" tar= get=3D"_blank">eliz@HIDDEN</a>> wrote:<br></div><blockquote class=3D"gm= ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,= 204,204);padding-left:1ex">> From: Riza Dindir <<a href=3D"mailto:riz= a.dindir@HIDDEN" rel=3D"noreferrer" target=3D"_blank">riza.dindir@gmail.= com</a>><br> > Date: Sat, 7 Sep 2024 15:37:17 +0300<br> > <br> > I am running Linux with kernel 6.6.47 and am running emacs in xterm, u= sing the -nw command line argument.<br> > <br> > I am new to emacs and was experimenting with the suspend-emacs command= . Following the example on<br> > <a href=3D"https://www.gnu.org/software/emacs/manual/html_node/elisp/S= uspending-Emacs.html" rel=3D"noreferrer noreferrer" target=3D"_blank">https= ://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html<= /a>.<br> > <br> > When following the example, I added the suspend-resume-hook to my .ema= cs.d/init.el file. When I run M-:<br> > (suspend-emacs "pwd") it does not show the current working d= irectory. But when I do fg from the terminal that I<br> > got into, I see the "Resumed!" message.<br> > <br> > I asked in the libera chat about that, and also in the gnu-help-emacs = list. I have been talking to wasamasa on<br> > libera chat (#emacs-beginners) and we pinpointed the problem to the st= uff_char function (in<br> > <a href=3D"https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep= .c#n403" rel=3D"noreferrer noreferrer" target=3D"_blank">https://git.savann= ah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403</a>). We came to this poin= t from<br> > stuff_buffered_input (<a href=3D"https://git.savannah.gnu.org/cgit/ema= cs.git/tree/src/keyboard.c#n11963" rel=3D"noreferrer noreferrer" target=3D"= _blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11= 963</a>), and from <br> > suspend-emacs function definition (in <a href=3D"https://git.savannah.= gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11908" rel=3D"noreferrer norefe= rrer" target=3D"_blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/sr= c/keyboard.c#n11908</a>).<br> > <br> > The stuff_char function is using ioctl with TIOCSTI. TIOCSTI requires = CAP_SYS_ADMIN capability. You can set<br> > this capability using sysctl setting dev.tty.legacy_tiocsti to 1.<br> > <br> > Unless I had set "dev.tty.legacy_tiocsti" to 1 I could not r= un the suspend-emacs command with an argument<br> > string.<br> > <br> > Either emacs can check the return value of ioctl in stuff_char and if = there return value is EPERM, then handle<br> > this accordingly, with a message regarding the problem.<br> <br> You mean, you want suspend-emacs signal an error if it is called with<br> STUFFSTRING argument, but fails to stuff the string into the<br> terminal's input buffer?<br> </blockquote></div> --00000000000058905e062189c71f--
bug-gnu-emacs@HIDDEN
:bug#73100
; Package emacs
.
Full text available.Received: (at 73100) by debbugs.gnu.org; 7 Sep 2024 16:30:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 12:30:07 2024 Received: from localhost ([127.0.0.1]:57330 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1smyK6-0006JZ-MO for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 12:30:07 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1smyK3-0006GX-P6 for 73100 <at> debbugs.gnu.org; Sat, 07 Sep 2024 12:30:05 -0400 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 <eliz@HIDDEN>) id 1smyJx-00064a-Cu; Sat, 07 Sep 2024 12:29:57 -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=J0aCf6NC+9Q3Ao6LlqnjU0CcuP1HQJsK5uzk99Ap/no=; b=PQTNhq08BYJu TzgaauEGOHXgFhLtusiIwhsNCtDFvGtB4o2b/G1ddpfiozF9Nv1MWKwnvoe4A63y3ypPxjfDQfXOZ RsloFyWQm22739VWRwWtgqMTRqToCvbMOC5LVuEWeukObQlEgwOKYRrvGr+s4IfWJi6FgGflu2HA1 H2hNQ8R4c3W9RtZzWdHRDHYrRxVHZRHgv4fvwGXyf89pnz2wF8Gu8tDEFMElxDNayzOeZchS8IG1w HHutFQaimuZrN33e/NjEcaZpufYsmtEX0UIRA2QRtzCAc1fUVeu1SR2pS1Ycb/74W197j7u+FPZRm WA9WYUosTvUIvsDBrtYHow==; Date: Sat, 07 Sep 2024 19:29:53 +0300 Message-Id: <8634mbxw8u.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Riza Dindir <riza.dindir@HIDDEN> In-Reply-To: <CA+ek4BGBhpQX1b-A13ov7Ts7MOke7nEzVa1+C=p3b5oJrkagpA@HIDDEN> (message from Riza Dindir on Sat, 7 Sep 2024 19:11:02 +0300) Subject: Re: bug#73100: Regarding a bug in suspend-emacs References: <CA+ek4BEgxpOHn-_1dV9VMTAyLenej9VkFQCMX_La-JWTwWKj=w@HIDDEN> <867cbnxzft.fsf@HIDDEN> <CA+ek4BGBhpQX1b-A13ov7Ts7MOke7nEzVa1+C=p3b5oJrkagpA@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 73100 Cc: 73100 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Riza Dindir <riza.dindir@HIDDEN> > Date: Sat, 7 Sep 2024 19:11:02 +0300 > Cc: 73100 <at> debbugs.gnu.org > > I am new to the code base, and it was just a suggestion to check for the ioctl call for any failures and take > precautions, maybe inform the user of the issue that the suspend-emacs command did not run correctly. Since > the command was not printing out anything when called with 'M-: (suspend-emacs "pwd")' I was not sure what > was happening. I was asking for your user's expectations, not how to do that in the code. > For users that use the linux kernel 6.2+ the ioctl command does not work correctly. When the STUFFSTRING is > passed to the suspend-emacs command, it does nothing. The problem with kernel 6.2+ is that it requires > CAP_SYS_ADMIN capability (https://www.man7.org/linux/man-pages/man2/TIOCSTI.2const.html). > > In the code at some point suspend-emacs command calls stuff_char, which uses ioctl (code snippet below, from > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403). The ioctl call fails. But in the code there is > no check for that, that might confuse people that use linux kernel 6.2+. I wanted to use suspend-emacs with > "pwd" as the string (as shown in the example in the documentation in > https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html). But the "pwd" command > was not displaying anything. Because it was not being sent/stuffed to the superior process. Does ioctl return -1 in that case? (I don't have access to a system where it fails, it works for me on GNU/Linux.) > Adding an error check would be one of the solutions. Assuming we can check that (see above), the question is what to do if we do detect a failure. > The other solution might be to add a piece of information to the documentation for suspend-emacs, (and > maybe to the documentation string for suspend-emacs) regarding this problem. So that people that use linux > kernel 6.2+ would be aware of this issue. That is already done, except that the documentation cannot be too specific regarding when and under what conditions it could happen.
bug-gnu-emacs@HIDDEN
:bug#73100
; Package emacs
.
Full text available.Eli Zaretskii <eliz@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 73100) by debbugs.gnu.org; 7 Sep 2024 15:21:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 11:21:07 2024 Received: from localhost ([127.0.0.1]:57224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1smxFL-0002aS-Hy for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 11:21:07 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1smxFH-0002ZZ-26 for 73100 <at> debbugs.gnu.org; Sat, 07 Sep 2024 11:21:05 -0400 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 <eliz@HIDDEN>) id 1smxFA-0007cx-HC; Sat, 07 Sep 2024 11:20:56 -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=FcjixUUuVQ0a91fX2NvdQVFR8sqtIVmfWmHb+Nj4ifI=; b=ElWOv6wdQ3gv mj3MyI349B4aD286OCfUs7x90QTacRi4hQeykcEUygTG5qZv3kglK5/3DqqRl4xR4jA7s0dGXywbx R1k4CLjToDeQ0t9iPBHQ0NxuCrw9y5ZpFpa5UvOg3gufewU0UZLLFRyxIQlnrjSl5VrZ1pitKuNfP RW3p9qMUDJWKR2vk8GI5ypGKojmMqw9DsgpffmHCBG8vbQEI89pHiS8zIACTeN0wqLZVeEJ/ok3TS WoJo3KO+uIOTgAxR7WR8oYCqBb+vZ79V3TXmZfw/vBYt8QMmzIjUeIdEeFGNqyeKTxkxeiDUgYW9b aCXG7/UrVLBxlow3NY9xTg==; Date: Sat, 07 Sep 2024 18:20:54 +0300 Message-Id: <867cbnxzft.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Riza Dindir <riza.dindir@HIDDEN> In-Reply-To: <CA+ek4BEgxpOHn-_1dV9VMTAyLenej9VkFQCMX_La-JWTwWKj=w@HIDDEN> (message from Riza Dindir on Sat, 7 Sep 2024 15:37:17 +0300) Subject: Re: bug#73100: Regarding a bug in suspend-emacs References: <CA+ek4BEgxpOHn-_1dV9VMTAyLenej9VkFQCMX_La-JWTwWKj=w@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 73100 Cc: 73100 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Riza Dindir <riza.dindir@HIDDEN> > Date: Sat, 7 Sep 2024 15:37:17 +0300 > > I am running Linux with kernel 6.6.47 and am running emacs in xterm, using the -nw command line argument. > > I am new to emacs and was experimenting with the suspend-emacs command. Following the example on > https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html. > > When following the example, I added the suspend-resume-hook to my .emacs.d/init.el file. When I run M-: > (suspend-emacs "pwd") it does not show the current working directory. But when I do fg from the terminal that I > got into, I see the "Resumed!" message. > > I asked in the libera chat about that, and also in the gnu-help-emacs list. I have been talking to wasamasa on > libera chat (#emacs-beginners) and we pinpointed the problem to the stuff_char function (in > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403). We came to this point from > stuff_buffered_input (https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11963), and from > suspend-emacs function definition (in https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11908). > > The stuff_char function is using ioctl with TIOCSTI. TIOCSTI requires CAP_SYS_ADMIN capability. You can set > this capability using sysctl setting dev.tty.legacy_tiocsti to 1. > > Unless I had set "dev.tty.legacy_tiocsti" to 1 I could not run the suspend-emacs command with an argument > string. > > Either emacs can check the return value of ioctl in stuff_char and if there return value is EPERM, then handle > this accordingly, with a message regarding the problem. You mean, you want suspend-emacs signal an error if it is called with STUFFSTRING argument, but fails to stuff the string into the terminal's input buffer?
bug-gnu-emacs@HIDDEN
:bug#73100
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 7 Sep 2024 14:43:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 10:43:39 2024 Received: from localhost ([127.0.0.1]:57169 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1smwf4-0000Sy-6u for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 10:43:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:40234) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <riza.dindir@HIDDEN>) id 1smuhS-0001Da-7l for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 08:37:58 -0400 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 <riza.dindir@HIDDEN>) id 1smuhR-0000u3-0V; Sat, 07 Sep 2024 08:37:57 -0400 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <riza.dindir@HIDDEN>) id 1smuhP-0006uQ-B7; Sat, 07 Sep 2024 08:37:56 -0400 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-277df202ca9so1651152fac.0; Sat, 07 Sep 2024 05:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725712673; x=1726317473; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=zsMU3oMmja4U1QnCOJ2ZKoLD+1tTkcMvBWF7vYTMK3I=; b=aXQVTsuFlS6tLABqj58YBQZmq/rmpY+A0cL21SyGsyaEyPzme1qpTI8ymuOzSLIL5G yDvWvP34hRkyRJLulHzPdji7QHbpZ4lY+0+KabiN7R4SubBCyRwW2pz+0Jqy2A+B4BBe x/pCB0l+RR/VAqC3lgJrMg8YGJDH4IowSewfxGdb8ItGHRjaxZGBM20fUIIdVhsqf4/X u10yjHIM55FsziHAvRyfXUdIJ7Yhzq3bp1EUbcVTI3pUAKqgNtCcjj7xkmSxCVkR5SoW p5ZsvAKhn+yG2Jw99MhZ5OoBjw6YqFVvfwcrNhF9y1qE9JBDE2ztgy9PFs7v5CNS3Fb+ dD9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725712673; x=1726317473; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zsMU3oMmja4U1QnCOJ2ZKoLD+1tTkcMvBWF7vYTMK3I=; b=ZZHiXnLYTfUW+q7ekAysqDlKC6Tll3WmjD3bOxJaQR66d7pAHldZileJntyU98n121 eYGPlspJPoFQqm03piHtLSlXJZkSHJwP3zWjYgTBWqDgcTVILsUWMzZ8AjmNTrJ8piIU D+PA88NgDbsoqn1IJnMQYC/7asmU5XUrrzw9zwd/iU3Z9b7+KciVgFLnJZWVZ7+txcnv tAn/c0ghblbtEbWYg2oTAG38AE4UuZDOd0zKJbIvxlM2iGRQf9e3tLF/C0+Qjj5iQwEo t5oh3sB4tu8ThLsKSzuz6G46ggh8FSkzJPdy14ByXdQ0cdGKvcGPuKhsLAE64s6WR+2t PdQA== X-Forwarded-Encrypted: i=1; AJvYcCWU2ZR/1n30kxi87gRqRIinSTt6qIq1OxgJ4prbWUs2EcIUZ6STxPrjlrSYdyQrvF5OuyQIsNcMZMPoqesCMw==@gnu.org X-Gm-Message-State: AOJu0YyL0I1jL1LXLiPIZwmjHK7ieE1YRyv3LARi34YtH3e2TnyOnruJ eZTKDNqRpe3xNrz1Fca3cv7LviTDqvc3XLV8rH23+W2jmeVOzJ0gOHmjFDbHBE6isL8wYKf0i1N ALWPHOX82GMWsR5aN4eW5SCvQqS5TxNeN0h0= X-Google-Smtp-Source: AGHT+IHqHWxP7eeu0V1ul7xjCxXM5boSgZjMst0w9SngemP0ZlIUm9GaDZJfBmhs0vif5MWPyXeuxQU1XTy0F+fg55Q= X-Received: by 2002:a05:6870:3646:b0:27b:55af:ca2b with SMTP id 586e51a60fabf-27b9d7f81c9mr971325fac.11.1725712673453; Sat, 07 Sep 2024 05:37:53 -0700 (PDT) MIME-Version: 1.0 From: Riza Dindir <riza.dindir@HIDDEN> Date: Sat, 7 Sep 2024 15:37:17 +0300 Message-ID: <CA+ek4BEgxpOHn-_1dV9VMTAyLenej9VkFQCMX_La-JWTwWKj=w@HIDDEN> Subject: Regarding a bug in suspend-emacs To: bug-gnu-emacs@HIDDEN, help-gnu-emacs@HIDDEN Content-Type: multipart/alternative; boundary="000000000000e2beaf062186ca62" Received-SPF: pass client-ip=2001:4860:4864:20::2b; envelope-from=riza.dindir@HIDDEN; helo=mail-oa1-x2b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sat, 07 Sep 2024 10:43:33 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) --000000000000e2beaf062186ca62 Content-Type: text/plain; charset="UTF-8" Hello I am running Linux with kernel 6.6.47 and am running emacs in xterm, using the -nw command line argument. I am new to emacs and was experimenting with the suspend-emacs command. Following the example on https://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html . When following the example, I added the suspend-resume-hook to my .emacs.d/init.el file. When I run M-: (suspend-emacs "pwd") it does not show the current working directory. But when I do fg from the terminal that I got into, I see the "Resumed!" message. I asked in the libera chat about that, and also in the gnu-help-emacs list. I have been talking to wasamasa on libera chat (#emacs-beginners) and we pinpointed the problem to the stuff_char function (in https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n403). We came to this point from stuff_buffered_input ( https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11963), and from suspend-emacs function definition (in https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11908). The stuff_char function is using ioctl with TIOCSTI. TIOCSTI requires CAP_SYS_ADMIN capability. You can set this capability using sysctl setting dev.tty.legacy_tiocsti to 1. Unless I had set "dev.tty.legacy_tiocsti" to 1 I could not run the suspend-emacs command with an argument string. Either emacs can check the return value of ioctl in stuff_char and if there return value is EPERM, then handle this accordingly, with a message regarding the problem. Or the information relating to the kernel version and CAP_SYS_ADMIN can be added to the infor page os suspend_emacs, along with the information on how to set this capability using sysctl. Kind Regards Riza Dindir --000000000000e2beaf062186ca62 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hello</div><div><br></div><div>I am running Linux wit= h kernel 6.6.47 and am running emacs in xterm, using the -nw command line a= rgument.<br></div><div><br></div><div>I am new to emacs and was experimenti= ng with the suspend-emacs command. Following the example on <a href=3D"http= s://www.gnu.org/software/emacs/manual/html_node/elisp/Suspending-Emacs.html= " target=3D"_blank">https://www.gnu.org/software/emacs/manual/html_node/eli= sp/Suspending-Emacs.html</a>.</div><div><br></div><div>When following the e= xample, I added the suspend-resume-hook to my .emacs.d/init.el file. When I= run <span style=3D"font-weight:bold">M-: (suspend-emacs "pwd")</= span> it does not show the current working directory. But when I do fg from= the terminal that I got into, I see the "Resumed!" message.</div= ><div><br></div><div>I asked in the libera chat about that, and also in the= gnu-help-emacs list. I have been talking to wasamasa on libera chat (#emac= s-beginners) and we pinpointed the problem to the stuff_char function (in <= a href=3D"https://git.savannah.gnu.org/cgit/emacs.git/tree/src/sysdep.c#n40= 3" target=3D"_blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/src/s= ysdep.c#n403</a>). We came to this point from stuff_buffered_input (<a href= =3D"https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n11963"= target=3D"_blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/src/key= board.c#n11963</a>), and from=C2=A0 suspend-emacs function definition (in <= a href=3D"https://git.savannah.gnu.org/cgit/emacs.git/tree/src/keyboard.c#n= 11908" target=3D"_blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/s= rc/keyboard.c#n11908</a>).</div><div><br></div><div>The stuff_char function= is using<span style=3D"font-family:arial,sans-serif"> ioctl </span>with TI= OCSTI. TIOCSTI requires CAP_SYS_ADMIN capability. You can set this capabili= ty using sysctl setting dev.tty.legacy_tiocsti to 1.</div><div><br></div><d= iv>Unless I had set "dev.tty.legacy_tiocsti" to 1 I could not ru= n the suspend-emacs command with an argument string.</div><div><br></div><d= iv>Either emacs can check the return value of ioctl in stuff_char and if th= ere return value is EPERM, then handle this accordingly, with a message reg= arding the problem.</div><div><br></div><div>Or the information relating to= the kernel version and CAP_SYS_ADMIN can be added to the infor page os sus= pend_emacs, along with the information on how to set this capability using = sysctl.</div><div><br></div><div>Kind Regards</div><div>Riza Dindir<br></di= v></div> --000000000000e2beaf062186ca62--
Riza Dindir <riza.dindir@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#73100
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.