<html><head><style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head><body class="hmmessage">Funny you should mention python.  I've ported 3.4.2 to Android and the interpreter runs without issues; no cursor jumping and no stty sane needed after exit.<br>
<br>
In my env TERM=linux but I have other options...if that would help.  I'll take a look at the routines you mentioned, but i'm kinda hoping to find a way to resolve this without (moe) hacking at source code.<br>
<br>
Thanks for the pointer in the right direction.<br><br><div class="gmail_quote">On June 6, 2015 10:41:46 PM CDT, Robert N <sushihangover@outlook.com> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">



<div dir="ltr"><div><br /></div>stty sane make sense in terms of a TERM=linux and either a messed up/missing termcap and/or missing capabilities during autogen/configure and shell that is not quite right...<div><br /></div><div>The fact that the console.unix.c works across all the std linux flavors and os-x would suggest that something in your environment is different. Not sure what your 'droid dev environment is like, but if you can build/debug mono, you can look at how it is init & exiting in the app-domain.c/console-io.c/console-unix.c routines.</div><div><br /></div><div>It should 'just work', but that requires a very clean environment as Mono does an very generic (iffy IMHO) job of tty exiting (also init'ing).  If you look at the ConsoleDriver the extent of the tty exit/teardown is 'string' that is sent is a hardcoded DC1 signal (0x11) which is Ctrl-Q (XON). You can browse the native driver function in console-unix.c, it is running on a gc'd thread, the std c lib
function atexit is called with the tty teardown function and it does a very generic teardown (flushing the pipes and setting the ECHO env to true).</div><div><br /></div><div>Is this right or wrong? Depends upon who you ask ;-) Programs written in python have this this issue all the time with using no echo tty mode and properly exiting, it is usually a threading issue, but hard to prevent. A lot of P-coders just place an os.system('stty sane') in their exit code, perl coders place system("stty sane");  curses users should always use endwin(); reset(); to clean things up, etc... </div><div><br /></div><div>The fact that the console.unix.c works across all the std linux flavors and os-x would suggest that something in your environment is different. Not sure what your 'droid dev environment is like, but if you can build/debug mono, you can look at how it is init & exiting in the app-domain.c/console-io.c/console-unix.c routines.<br /><br /><div><hr id="stopSpelling"
/>From: chaselton@gmail.com<br />Date: Sat, 6 Jun 2015 19:39:16 -0500<br />To: mono-devel-list@lists.ximian.com<br />Subject: Re: [Mono-dev] Terminal config for mono csharp shell?<br /><br />Additionally, running 'stty sane' after exiting the REPL solves the problem.  Maybe there is a way to set the REPL to run a command on quitting?<br /><br /><div class="ecxgmail_quote">On June 6, 2015 8:04:47 AM CDT, Cyd Haselton <chaselton@gmail.com> wrote:<blockquote class="ecxgmail_quote" style="border-left:1px solid rgb(204, 204, 204);padding-left:1ex;">
Are there any special terminal and/or shell settings I should set for the csharp shell?<br />
<br />
csharp works okay...minus some cursor jumping...but after quitting the console shell behaves oddly until I exit it and re-enter.<br />
<br />
Example:<br />
/home/kbox $ csharp<br />
Mono C# Shell, type "help;" for help                                                 <br />
Enter statements below.<br />
csharp> DateTime.Now                                                                 06/06/2015 13:00:31<br />
csharp> help                                                                         "Static methods:<br />
  Describe (object);       - Describes the object's type<br />
  LoadPackage (package);   - Loads the given Package (like -pkg:FILE)<br />
  LoadAssembly (assembly); - Loads the given assembly (like -r:ASSEMBLY)<br />
  ShowVars ();             - Shows defined local variables.<br />
  ShowUsing ();            - Show active using declarations.<br />
  Prompt                   - The prompt used by the C# shell<br />
  ContinuationPrompt       - The prompt for partial input<br />
  Time (() => { });        - Times the specified code<br />
  print (obj);             - Shorthand for Console.WriteLine<br />
  quit;                    - You'll never believe it - this quits the repl!<br />
  help;                    - This help text<br />
  TabAtStartCompletes      - Whether tab will complete even on empty lines<br />
"<br />
csharp> quit<br />
<br />
Environment shell after quitting:<br />
/home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ > /data/data/jackpal.androidterm/kbox2/bin/bash: \: not found<br />
/home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $ /home/kbox $<br />
<br />
After exiting environment shell...you can't see the 'exit' command I typed:<br />
/home/kbox $ 127|u0_a186@altev:/ $<br />
127|u0_a186@altev:/ $<br />
127|u0_a186@altev:/ $<br />
127|u0_a186@altev:/ $<br />
127|u0_a186@altev:/ $<br />
<br />
Re-entering the environment shell:<br />
127|u0_a186@altev:/ $ /data/data/jackpal.androidterm/kbox2/bin/kbox_shell<br />
/home/kbox $<br />
/home/kbox $<br />
/home/kbox $<br />
/home/kbox $<br /></blockquote></div><br /></div></div></div></blockquote></div><br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.</body></html>