bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41099: 28.0.50; TRAMP process-file ignores exit status of remote pro


From: Philipp Stephani
Subject: bug#41099: 28.0.50; TRAMP process-file ignores exit status of remote process
Date: Wed, 6 May 2020 19:57:53 +0200

Am Mi., 6. Mai 2020 um 19:56 Uhr schrieb Philipp Stephani
<p.stephani2@gmail.com>:
>
> Am Mi., 6. Mai 2020 um 19:30 Uhr schrieb Michael Albinus
> <michael.albinus@gmx.de>:
> >
> > Philipp Stephani <p.stephani2@gmail.com> writes:
> >
> > Hi Philipp,
> >
> > >> As a second step, consider also translating signals: if the exit code
> > >> is > 128, subtract 128 and return an appropriate string, like
> > >> call-process does.
> > >
> > > Try
> > > (call-process "bash" nil nil nil "-c" "kill -SYS $$")
> > > "Bad system call"
> >
> > I see. Hmm, this would require to install a trap handler in the remote
> > shell, and to add a mechanism transferring its result back to
> > Tramp. Don't know whether this is worth the effort.
>
> That wouldn't work because Bash translates signals from subprocesses:
>
> $ bash -c 'kill -SYS $$'; echo $?
> Bad system call (core dumped)
> 159
>
> The 159 here is 128 + the signal number.

What I suggest here would be something like the following:

(defun tramp-process-file (...)
  (let ((code (...original code...)))
    (if (> code 128)
       ;; Probably a signal
       (format "Signal %d" (- code 128))
    code))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]