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

Reply via email to