[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Problem with org.eclipse.cdt.utils.spawner.SpawnerOutputStream.write method

Dear all,

I'm working to extend the ProcessConsole functionality of my CDT based product.

This is the use case
-----------------------------
When the user press a special key (like SWT.ARROW_DOWN, SWT.ARROW_UP and SWT.TAB) in the console view (instance of the ConsoleView linked with a ProcessConsole), I need to forward it to the underlying process that is a Unix like console with history and auto competition capabilities.

This is my solution
---------------------------
1. I listen for key event in order to prevent the StyledText to handle the special key.
2. I use the IStreamsProxy.write(String input) method of the RuntimeProcess attached to the console in order to send the character to the system process.

Problem
------------
All works fine except for the \t (TAB) character. I observed that the IStreamProxy.write method uses the org.eclipse.cdt.utils.spawner.
SpawnerOutputStream.write(byte[] b, int off, int len) one, taht is a native method. It seems that it replaces \t with \n. For example when I call IStreamsProxy.write("a\ta\ta"), the SpawnerOutputStream.write(...) is called one time for each character but my system process receive the string "a\na\na".

I will appreciate any suggestion and I hope this is the right place to post my question.

Best regards,
Stefano