Follow-up Comment #8, bug #25291 (group screen): Ok, we have a patch:
% cat ~/gnu/zmodem.patch diff --git a/src/process.c b/src/process.c index 129e2dc..cbd33f2 100644 --- a/src/process.c +++ b/src/process.c @@ -1190,7 +1190,7 @@ static void DoCommandZmodem(struct action *act) int i; for (i = 0; i < 4; i++) if (!strcmp(zmodes[i], *args)) - return; + break; if (i == 4 && !strcmp(*args, "on")) i = 1; if (i == 4) { diff --git a/src/window.c b/src/window.c index 9f5e2d4..042d152 100644 --- a/src/window.c +++ b/src/window.c @@ -1812,7 +1812,6 @@ static void zmodem_found(Window *p, int send, char *bp, size_t len) void zmodem_abort(Window *p, Display *d) { - Display *olddisplay = display; Layer *oldflayer = flayer; if (p) { if (p->w_savelayer && p->w_savelayer->l_next) { @@ -1831,7 +1830,6 @@ void zmodem_abort(Window *p, Display *d) D_readev.condpos = D_readev.condneg = NULL; Activate(D_fore ? D_fore->w_norefresh : 0); } - display = olddisplay; flayer = oldflayer; } Let's test it... git master branch, Kubuntu: % cat /etc/issue Ubuntu 22.04.4 LTS % dpkg -s konsole | grep '^Version:' Version: 4:21.12.3-0ubuntu1 % git branch * master % git pull Enter passphrase for key '/home/alex/.ssh/id_rsa.screen': Already up to date. % git rev-parse HEAD fcfa6d2da0735d27d322ff22147534ecfb4d7302 % git apply ~/gnu/zmodem.patch % echo $? 0 % ./configure % make % sudo make install % screen -v Screen version 4.99.0 (build on 2024-07-10 13:07:15) I have 3 tabs in Konsole. First one I'm going to use for the first screen session 'source', second for the second one 'zmodem' and last one for the "screen -ls", i.e. for some outside checks (there is no screen session there). Start first screen session: [3] % screen -ls No Sockets found in /home/alex/.screen. [1] % screen -S source [3] % screen -ls There is a screen on: 13271.source (Attached) 1 Socket in /home/alex/.screen. Start second screen session and enable zmodem mode there. Check file name (example test name... let's say "passwd") [2] % screen -S zmodem [2] C-a :zmodem pass # I get message 'zmodem mode is pass' [3] % screen -ls There are screens on: 13344.source (Attached) 13393.zmodem (Attached) 2 Sockets in /home/alex/.screen. [2] % ls -la passwd ls: cannot access 'passwd': No such file or directory Send some test file from the first screen session 'source' to the second one 'zmodem' by usging 'sz' command: [1] C-a : !!! sz /etc/passwd Sending: passwd Bytes Sent: 2717 BPS:511578 Transfer complete % echo $? 0 Second session. Check the file again. Third tab: Check the state of both screen sessions: [2] % ls -la passwd -rw-r--r-- 1 alex alex 2717 Sep 28 2023 passwd [3] % screen -ls There are screens on: 14102.source (Attached) 14118.zmodem (Attached) 2 Sockets in /home/alex/.screen. Both screens are alive. No dead sessions. No crashes. File is there... _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?25291> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature