[erlang-questions] Reading (and ignoring) escape-sequences

Mazen Harake <>
Tue Mar 23 10:13:44 CET 2010


Yeah I've already started digging into that.

The problem is more fundamental then I thought and in the end it turns 
out that all libraries (including ncurses) depend on the the fact that a 
human can not type in the escape sequence as fast as it is received by a 
computer. This makes it _extreamly_ hard (I would say impossible) to do 
this from pure Erlang; it has to be done from inside the driver. The 
core problem was in fact "If an escape character, ^[, is received how do 
you know if it is the beginning of a sequence or if someone simply 
pressed escape" and the answer seems to be "Timing.".

Not what I had hoped for because now I have to implement some asynch io 
scheme to handle it. Hopefully this is something that could be handled 
by the official driver in the future (e.g. start the driver with a flag 
or something to get mapped key-input); I tried looking at it but my 
C-fetish only reach so far *shrug*.

Anyway, Thank you for the reply, Kenji.

/Mazen


On 23/03/2010 01:40, Kenji Rikitake wrote:
> I suggest you to learn termcap/terminfo libraries on UNIX,
> and the curses library (ncurses now I guess) source code.
> You need to parse the whole sequence anyway.
> And the definition of those sequences depends on the type to
> terminals you're going to connect.
>
> Kenji Rikitake
>
> In the message<>
> dated Mon, Mar 22, 2010 at 02:53:30PM +0200,
> Mazen Harake<>  writes:
>    
>> Say that I want to be able to catch UpArrow but not LeftArrow (or any
>> other escape-sequence for that matter) I can't start reading the ^[
>> character and suddenly stop when there is something I don't recognise
>> because there might be "garbage" which I have to skip (the rest of the
>> sequence)... and to skip this I have to implement the whole list of
>> escape-sequences to know how much to skip. Is there any other way to do
>> this in Erlang? I can't seem to find any facility to read or get
>> escape-sequences (like UpArrow or whatever).
>>
>> Did I overlook something or anyone have any tip on how to do this?
>>      
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>    

---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com



More information about the erlang-questions mailing list