[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.

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,