As a general rule, typing interactively when event handlers are going off is problematic.
Imagine, for example, that you were typing something arbitrary, like: A quick brown fox jumps over the lazy dog. Now, imagine that an event handler goes off ever place a . is inserted: A q.uick .bro.wn. f.ox ju.mps o.ve.r t.he. lazy. dog. It's going to be a mess no matter what you do, But this can be worked around by using a different approach. For example, on unix, you can use tail -f filename to display everything that gets appended to a file. With that, and a separate window, you can use fappend in J to have event handler messages show up without messing up your interactive display. (On windows, I guess you'd have to install cygwin to get the tail command) Would something like that work for you? Thanks, -- Raul On Fri, Nov 14, 2014 at 3:22 PM, Henry Rich <[email protected]> wrote: > What needs to be put out is LF + 3 spaces, to function as a command prompt. > > The current behavior is most undesirable, because the smoutput result must > be removed before a line can be executed. The workaround of outputting a > LF,' ' prompt from the handler is a kludge, and hard to do right if a > variable number of smoutputs is possible. > > One solution would be for the input reader to ensure that there is a prompt > in the last line of the window before waiting for user input. > > Henry Rich > > > On 11/14/2014 12:53 AM, bill lam wrote: >> >> I think smoutput itself does not output the trailing LF, it is the >> job of the front-end. Also trailing LF will be suppressed for EMPTY. >> I am not sure if your suggestion is better than the current behavior. >> Anyway, perhaps you can append trailing LF when smoutput inside timer >> or websocket events >> . >> >> On Fri, Nov 14, 2014 at 8:27 AM, Henry Rich <[email protected]> wrote: >>> >>> The cursor is visible, and moves, and I can enter data. The problem is, >>> there is no blank line to enter data into. When I run what I gave you >>> before, I see >>> >>> >>> load 'c:/users/henryrich/j803-user/temp/2.ijs' >>> wd 'timer 1000' >>> >>> one line|<-----------------------cursor is here >>> ///////////////////////////// >>> ///// inaccessible area ///// >>> ... >>> >>> I can't cursor down to an empty line, so I have to back up over the >>> text that was typed. >>> >>> Henry Rich >>> >>> >>> On 11/13/2014 7:23 PM, bill lam wrote: >>>> >>>> >>>> I guess the cursor is only visible if a widget had keyboard input focus. >>>> Can you confirm by typing something with keyboard? >>>> >>>> On 14.11.2014, at 7:18, Henry Rich <[email protected]> wrote: >>>> >>>>> To produce the problem, define >>>>> >>>>> sys_timer_z_ =: 3 : 0 >>>>> smoutput 'one line' >>>>> wd 'timer 0' >>>>> ) >>>>> >>>>> And then type in >>>>> >>>>> wd 'timer 1000' >>>>> >>>>> >>>>> Henry Rich >>>>> >>>>> On 11/13/2014 5:29 PM, chris burke wrote: >>>>>> >>>>>> >>>>>> I am not sure what is going on, but please also check if you have the >>>>>> same >>>>>> problem when smoutput is entered from the terminal, or run from a >>>>>> script >>>>>> in >>>>>> the IDE. >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Nov 13, 2014 at 2:15 PM, Henry Rich <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> The line was in a websocket handler. It was simply >>>>>>> >>>>>>> smoutput wss0_jrx_ >>>>>>> >>>>>>> Perhaps the problem is that the line is being invoked as a response >>>>>>> to >>>>>>> a >>>>>>> socket event, without any keyboard action? >>>>>>> >>>>>>> The problem was at school, so I don't have the version on me, but I >>>>>>> installed on all machines yesterday, and updated with Package >>>>>>> Manager. >>>>>>> >>>>>>> Henry Rich >>>>>>> >>>>>>> >>>>>>> On 11/13/2014 3:05 PM, chris burke wrote: >>>>>>> >>>>>>>> I cannot duplicate this, and smoutput works fine for me. What >>>>>>>> version >>>>>>>> are >>>>>>>> you running, and how are you entering the smoutput sentence? >>>>>>>> >>>>>>>> On Thu, Nov 13, 2014 at 11:56 AM, Henry Rich <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> smoutput 'xxx' >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> prints xxx, but it leaves the cursor on the printed line, which is >>>>>>>>> the >>>>>>>>> last line of the display. So, there is no easy way to type a new >>>>>>>>> line. >>>>>>>>> >>>>>>>>> I suggest that it should append another empty line (indented 3 >>>>>>>>> spaces) to >>>>>>>>> allow for another command. >>>>>>>>> >>>>>>>>> Henry Rich >>>>>>>>> >>>>>>>>> >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> For information about J forums see >>>>>>>>> http://www.jsoftware.com/forums.htm >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>> >>>>>>>> >>>>>>>> For information about J forums see >>>>>>>> http://www.jsoftware.com/forums.htm >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ---------------------------------------------------------------------- >>>>>>> >>>>>>> >>>>>>> For information about J forums see >>>>>>> http://www.jsoftware.com/forums.htm >>>>>>> >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
