I checked my hello_world.js and the github code with window.prompt you pointed to in your first reply is also in my hello_world.js. I also found that the output is done through the out() function in the js.
So I must replace windows.prompt with something else that not generates a popup window but takes output from a simulated terminal window? Ands I must make out() print to that same window? So. I'm going to have a look at the terminal window simulators for websites you posted. On Thursday, 7 January 2021 at 01:59:40 UTC+1 [email protected] wrote: > On Wed, Jan 6, 2021 at 5:54 AM Marnix <[email protected]> wrote: > >> “How do you indent that you users interact with your app?’ >> >> The application is an Interactive Fiction Interpreter. All user input is >> text (keyboard) and so is the application’s output. When running locally, >> the application runs ins a CMD-window (windows) or a terminal window (linux >> and macos). So I think what I need is one web page with an input prompt and >> output on the same page. Sort of like a chat conversation: enter some text >> and get a reply. >> > > In that case maybe you want to look into some kind of web-based terminal > similar UI.. you can then hook that up to emscripten either via > stdin/stdout, or probably more simply via direct functions call from JS to > C++ and back again. > For terminals in JS it looks like there are many options: > https://xtermjs.org/ https://hterm.org/ both look good. > > You probably don't want to be doing `window.input` which is why emscripten > is doing under the hood by default here. > > Having said that there may be a bug that is worth fixing around how stdin > is being read from the result of `window.input`.. its might be worth fixing > but it doesn't sounds like it would lead you to a solution you could use in > production. > > Op woensdag 6 januari 2021 om 13:24:41 UTC+1 schreef [email protected]: >> >>> Reading text input via input pop-ups is probably only useful debugging. >>> I think the primitive support for reading stdin in this way allows you to >>> get things running quickly, but any production application on the web >>> probably needs to be redesigned such that it gets its input some other more >>> web-friendly way. How do you indent that you users interact with your >>> app? >>> >>> If you are interested the code in question (that gets input from >>> `window.input` JS API) seems to be here: >>> https://github.com/emscripten-core/emscripten/blob/289befa9cd7120a7d21835b45903993c44b2c593/src/library_tty.js#L133 >>> >>> On Sat, Jan 2, 2021 at 4:52 AM Marnix <[email protected]> wrote: >>> >>>> I’m on Windows 10 and have a pretty large (I think) console application >>>> written in C. 90+ files and about 17.000 lines of code. >>>> >>>> It compiles without errors/warnings in emcc. However, when I run it, >>>> the text input does not seem to work correctly. It keeps popping up the >>>> input window and buffering text. So I went back to basics and to reproduce >>>> and isolate the issue added a scanf() statement to the hello_world program >>>> that comes with the emscripten package: >>>> >>>> =================================================== >>>> /* >>>> * Copyright 2011 The Emscripten Authors. All rights reserved. >>>> * Emscripten is available under two separate licenses, the MIT license >>>> and the >>>> * University of Illinois/NCSA Open Source License. Both these licenses >>>> can be >>>> * found in the LICENSE file. >>>> */ >>>> #include <stdio.h> >>>> >>>> int main() { >>>> char input[25]; >>>> >>>> printf("hello, world!\n"); >>>> printf("Enter input: "); >>>> scanf("%s", input); >>>> printf("\nInput is: %s\n", input); >>>> >>>> return 0; >>>> } >>>> =================================================== >>>> >>>> I compiled the file with command “emcc tests/hello_world.c –o >>>> hello_world.html”. >>>> >>>> This little program has the same issue. It keeps asking for input and >>>> only when I cancel the input window it prints “hello, world!” “Enter >>>> input: >>>> “ and “Input is: <what I entered>“. >>>> >>>> The program is at this link on my website so you can see the behavior: >>>> hello_world <https://www.xvan.nl/emscripten/hello_world.html> >>>> >>>> What I don't understand: why is the input window coming back each time >>>> and why is the text buffered until I cancel the input window? >>>> >>>> I did search the group, but actually I don’t know what I’m looking for. >>>> >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/emscripten-discuss/29395d49-9ada-4100-b542-f1e59602137bn%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/emscripten-discuss/29395d49-9ada-4100-b542-f1e59602137bn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/emscripten-discuss/217e6a32-b62b-4693-8799-28f19d9a08d8n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/emscripten-discuss/217e6a32-b62b-4693-8799-28f19d9a08d8n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/0730546e-ea71-4b95-b90f-3c6dd2bded4cn%40googlegroups.com.
