Re: Android question: how to connect to swank, running on android?

Daniel Kochmański <[email protected]>
Newsgroups gmane.lisp.ecl.general
Message-ID <[email protected]>
Hah, that would explain why it has worked for me. In jni driver on 
ecl-android I've dup'ed stdin. See file 
jni/org_lisp_ecl_EmbeddedCommonLisp.c:63

         LOGI("Redirecting I/O\n");

         snprintf(tmp, 2048, "%s/ecl_output", lisp_dir);
         mkfifo(tmp, 0664);
         /* mode is O_RDWR to prevent blocking. Linux-specific. */
         fd = open(tmp, O_RDWR | O_NONBLOCK);
         dup2(fd, 1);
         dup2(fd, 2);
         close(fd);

         snprintf(tmp, 2048, "%s/ecl_input", lisp_dir);
         mkfifo(tmp, 0664);
         fd = open(tmp, O_RDONLY | O_NONBLOCK);
         dup2(fd, 0);
         close(fd);

So stdin had a valid value.

Best regards,

Daniel


On 25.08.2017 22:01, PR wrote:
> ...and finally the OK: problem solved (thanks to Luís Oliveira / Slime
> mailing list):
>
> This would be a possible patch to 'swank.lisp':
>
>   (defun repl-input-stream-read (connection stdin)
>     (loop
>      (let* ((socket (connection.socket-io connection))
> +          (inputs (list socket #-android stdin))
> -          (inputs (list socket stdin))
>             (ready (wait-for-input inputs)))
>        (cond ((eq ready :interrupt)
>               (check-slime-interrupts))
>
> (quickly tested by me on both Android and PC.)
>
> Paul
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.