EDIT:
Aww, small problem now, it doesn't work!
unfortunately when I double click TAB seems that the program pass to another perlio layer and not to STDIN!
infact when I try to click the upside buttons (given by Curses::UI), I obtain the printing of the following lines
to the screen:
[M %! [ M#%![ M% ecc..
which seems to be malformed input strings, probably there must be some
pack($input)
solution
Regards,
Edoardo Mantovani
| [reply] [d/l] [select] |
The problem is that after the first <Tab> Curses::UI gives control of the terminal to Term::Complete. It acts directly on the terminal, and Curses::UI is not aware of what it does. It is not another perlio layer. Curses::UI is not aware of any keystrokes whilst in Term::Complete::Complete(). From the POD of Term::Complete:
The tty driver is put into raw mode and restored using an operating system specific command, in UNIX-like environments "stty".
So, Curses::UI and Term::Complete are not aware of each other. Term::Complete doesn't define up/down keys. It is tricky to integrate both...
With the snippet as provided, <Tab> must be pressed before attempting a completion; then you type the chars of a word you intend to complete. Subseqent <Tab> presses advance the completion until it is unambiguous. Then you press <Return> - completion done. Refresh the screen with ^L.
perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
| [reply] |
Oh, that's unexpected,
Initially I thought that Curses::UI used a custom perlio layer for its purposes, but effectively in the source code there is no XS ( || perlio library ),
So the question remain the same,
How I could create an auto-correcting text-editor application?
There is something better or similar than Ncurses || Curses::UI on CPAN?
regards,
Edoardo Mantovani
| [reply] |