History log of /haiku/src/apps/terminal/VTPrsTbl.c
Revision Date Author Comments
# 18d61222 21-Jul-2023 Jérôme Duval <jerome.duval@gmail.com>

Terminal: support for underline color and styles

the text is now printed above the underline.

Change-Id: I1a3a7713bf514830106532e1534793e0fe158bc2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6706
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 242adb20 06-Jan-2021 Jérôme Duval <jerome.duval@gmail.com>

Terminal: implement ECMA-48 "REP"

fix #16724

Change-Id: Ie9f8252393a65a0101a6d78db2360f48bb52bc73
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3607
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 62eadc5e 09-Nov-2016 Jérôme Duval <jerome.duval@gmail.com>

Terminal: implement index and next-line CSI sequences.

* also ignore 0xa, 0xb, 0xc control characters in CSI sequences.


# ecfaa77a 03-Nov-2016 Jérôme Duval <jerome.duval@gmail.com>

Terminal: Implement a few cursor CSI commands.

* Cursor back tab, cursor forward tab.
* Cursor next line, cursor previous line.
* also add size 13 to the list of font sizes.


# bf88d81e 18-Apr-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix GB18030 encoding support. And some cleanup ...

* Fix GB18030 Chinese encoding support for two and four bytes long
characters. This finally resolves issue described in #6227;
* Processing of multi-byte characters was slightly refactored too;
* Remove the multi-byte 94/96 graphsets designation support for
Japanese encodings. That looks like MuTerm rudiment, it had incomplete
implementation and looked like abandoned. On the other hand multi-byte
designation must be implemented in the same way as designation for
single-byte graphsets was done. Note that this multi-byte graphsets
designation has nothing to do with the normal encoding support for
usual data flow conversion - so you will be on the safe side when
use terminal encoding menu switch.
The removed feature is the ancient technique to achieve different charsets
support on 8-bit serial lines by assigning (designating) predefined
sets of characters to G0, G1, G2 and G3 and selecting them during
program life-time into GL (x20-x07E) or GR (xA0-xFF) areas by using LS
or SS functions.
For example xterm has no support for designation multi-byte graphsets
at all. Anyway if this feature is required and you can provide the
test environment - please let me know and I will be glad to implement
this feature in more easy and consistent way;
* Remove unreferenced gSmbcsTable and gScsTable parsing tables that
looks like is not used anymore;
* Remove gCS96GroundTable and gMbcsTable parsing tables that were used
by multi-byte 94/96 Japanese graphsets support and now obsoleted by
removing mentioned feature;
* Remove some obsoleted #defines, like HW statusline support for
example, from parse tables definition.


# e0fcd629 27-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Code style fixes. No functional changes.

Fix for some code style issues pointed out by Axel. Thanks.


# daebca78 21-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

More standard handling G0,G1,G2,G3 graph.char sets

Handling of graphic character sets G0-G3 is fixed and implemented in
more consistent, extensible way.


# 9f726b36 15-Dec-2012 Ziusudra <ziusudra@gmail.com>

Terminal:Add ACS symbols supported by xterm-256color

More ACS (also known line drawing) symbols should be supported by
xterm-256color terminal emulator.
Partially fixes #9293.


# 5b41331f 09-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

CodeStyle fixes, some refactoring and cleanup

* Clear some codestyle issues catched by checker script;
* Rename RestartDebugCapture to more consistent StartStopDebugCapture;
* Updated Copyrights and authors lists, some occurences of the raw MIT
licence text replaced with "under the terms of MIT licence" reference;
* Fixes for x86_64 build.

This is cumulative cleanup commit for series of Terminal refactoring
changes I have introduced last time. No significant functional changes.


# 6d30b376 05-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Support for underline and ibeam terminal cursor styles

* Add support for underline and i-beam cursor shapes. No corresponding
UI configuration in preferences view ATM because preferences are waiting
for refactoring and we need some eggs for this Easters. ;-)
* Add handling of VT520/xterm specific DECSCUSR control sequences
allowing applications to modify the style and blinking state of the
cursor. May be utilized, for example, by console version of vim;
* Implement cursor blinking/hiding on DECSET/DECRST commands.


# f3782185 13-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

Refactoring of 8-bit encodings support.
* Fixed issue introduced in hrev38139: restoring from the line
drawing table was hard-coded to UTF8 Ground table. That is wrong:
the table for currently configured encoding must be set back.
Please look on using of _GuessGroundTable() for details;

* Fixed issue introduced in hrev34894: the semantic of convert_xx_utf8
functions requires the destination length to be set equal to the
target buffer size. Pre-hrev34894 usage of "homebrew" conversion
functions was a bit different - destination length was set to 0.
This made any converstions of input data useless and produce no
visual results;

* Private list of supported encodings (Encoding.cpp) was replaced by
using BPrivate::BCharacterSetRoster functionality. That allows to
use centralized info about encodings in unified with other
applications (Mail & StyledEdit for example) way. Most of currently
enumerated in UTF8.h encodings now available in Terminal.
Note that UCS-2 and UTF-16 are temporary (???) excluded from the
list of encodings supported by Terminal.

* The B_UTF16_CONVERSION was added in system-wide UTF8.h declarations.
This character set is available for enumerating by BCharacterSetRoster
but not listed in public API. Looks like it was just missed;

* Special note about "Text Encoding" entry in Preference File:
So known "shortname" of encoding was used in the preferences file.
For details look on the encodings list in previous version of
Encoding.cpp. As result of migrating to BCharacterSet-provided
resources this list was deleted and is not available anymore.
Instead of it the IANA name of the character encoding targeted
to be used for this purposes. Frankly speaking this part looks
like not working at the moment. The value of text encoding is
hardcoded to "UTF-8" now and is not affected by any operations
in Terminal menu. Note that "shortname" for default encoding
was "UTF8" but the saved value is "UTF-8" - and they are looking
not dependent at all. So this change should not introduce any
kind of backward incompatibility.


# 3eedbbbf 16-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Handle more pseudoÃ-graphic characters and ways of using them. This gets aptitude (from debianÃ) displaying properly and should also fix midnight commander.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3614af01 13-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Fix #2673 : allow use of \E(0 to switch to line drawing character set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77ad96c0 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:
Implements DA, reporting that the terminal is a VT102.
Implements DEXREQTPARM, reporting the same parameters that xterm does.
Fixes DSR 6 to actually report the position of the cursor.

Resolves ticket #4659. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33327 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 630426d6 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:

Implement correctly handling tab stop escape sequences.

Resolves ticket #4657. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdb5a85e 26-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Ignore ^?. That's what xterm seems to do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a177ec8c 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for \ESC[%dX (erase characters).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9035d0e2 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for \ESC[%dT (scroll screen down).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f600843 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for \ESC[%dS (scroll screen up).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8bbf2fc7 09-May-2008 François Revol <revol@free.fr>

- some more ANSI attributes
- changed comments to pragma comments for parse tables as it's huge, but sadly Pe doesn't make them clickable in the function list...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87f17bdf 09-May-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

added the g prefix to some global variable

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25401 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eed037b6 08-May-2008 François Revol <revol@free.fr>

- SetPosX/Y were wrong, but not yet used.
- implemented HPA/VPA (CV/CH) sequences (set absolute v and h position). It's optional but because the beterm termcap advertises it we must implement it. Also note beterm increments args unlike others. This fixes all obvious display issues with the rhapsody IRC client (a small ncurses client I ported).
- maybe we should switch the CASE_* to an enum ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf88d81ea66a93295ec06ec8668c38e28aa49957 18-Apr-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix GB18030 encoding support. And some cleanup ...

* Fix GB18030 Chinese encoding support for two and four bytes long
characters. This finally resolves issue described in #6227;
* Processing of multi-byte characters was slightly refactored too;
* Remove the multi-byte 94/96 graphsets designation support for
Japanese encodings. That looks like MuTerm rudiment, it had incomplete
implementation and looked like abandoned. On the other hand multi-byte
designation must be implemented in the same way as designation for
single-byte graphsets was done. Note that this multi-byte graphsets
designation has nothing to do with the normal encoding support for
usual data flow conversion - so you will be on the safe side when
use terminal encoding menu switch.
The removed feature is the ancient technique to achieve different charsets
support on 8-bit serial lines by assigning (designating) predefined
sets of characters to G0, G1, G2 and G3 and selecting them during
program life-time into GL (x20-x07E) or GR (xA0-xFF) areas by using LS
or SS functions.
For example xterm has no support for designation multi-byte graphsets
at all. Anyway if this feature is required and you can provide the
test environment - please let me know and I will be glad to implement
this feature in more easy and consistent way;
* Remove unreferenced gSmbcsTable and gScsTable parsing tables that
looks like is not used anymore;
* Remove gCS96GroundTable and gMbcsTable parsing tables that were used
by multi-byte 94/96 Japanese graphsets support and now obsoleted by
removing mentioned feature;
* Remove some obsoleted #defines, like HW statusline support for
example, from parse tables definition.


# e0fcd6291689c1a02f86e60262c8f1d3c0f23dca 27-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Code style fixes. No functional changes.

Fix for some code style issues pointed out by Axel. Thanks.


# daebca78f8edce18e967705c7e7c00e0b4c43e23 21-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

More standard handling G0,G1,G2,G3 graph.char sets

Handling of graphic character sets G0-G3 is fixed and implemented in
more consistent, extensible way.


# 9f726b367b8aa6490ac6a523b06af00f7e595076 15-Dec-2012 Ziusudra <ziusudra@gmail.com>

Terminal:Add ACS symbols supported by xterm-256color

More ACS (also known line drawing) symbols should be supported by
xterm-256color terminal emulator.
Partially fixes #9293.


# 5b41331f1100c78541d87b7ad5a15d5652acb079 09-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

CodeStyle fixes, some refactoring and cleanup

* Clear some codestyle issues catched by checker script;
* Rename RestartDebugCapture to more consistent StartStopDebugCapture;
* Updated Copyrights and authors lists, some occurences of the raw MIT
licence text replaced with "under the terms of MIT licence" reference;
* Fixes for x86_64 build.

This is cumulative cleanup commit for series of Terminal refactoring
changes I have introduced last time. No significant functional changes.


# 6d30b376e908fe678fc35c79d58314367f3d44fe 05-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Support for underline and ibeam terminal cursor styles

* Add support for underline and i-beam cursor shapes. No corresponding
UI configuration in preferences view ATM because preferences are waiting
for refactoring and we need some eggs for this Easters. ;-)
* Add handling of VT520/xterm specific DECSCUSR control sequences
allowing applications to modify the style and blinking state of the
cursor. May be utilized, for example, by console version of vim;
* Implement cursor blinking/hiding on DECSET/DECRST commands.


# f37821851ef7dc4da35cd040329f11ca8cdd9826 13-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

Refactoring of 8-bit encodings support.
* Fixed issue introduced in hrev38139: restoring from the line
drawing table was hard-coded to UTF8 Ground table. That is wrong:
the table for currently configured encoding must be set back.
Please look on using of _GuessGroundTable() for details;

* Fixed issue introduced in hrev34894: the semantic of convert_xx_utf8
functions requires the destination length to be set equal to the
target buffer size. Pre-hrev34894 usage of "homebrew" conversion
functions was a bit different - destination length was set to 0.
This made any converstions of input data useless and produce no
visual results;

* Private list of supported encodings (Encoding.cpp) was replaced by
using BPrivate::BCharacterSetRoster functionality. That allows to
use centralized info about encodings in unified with other
applications (Mail & StyledEdit for example) way. Most of currently
enumerated in UTF8.h encodings now available in Terminal.
Note that UCS-2 and UTF-16 are temporary (???) excluded from the
list of encodings supported by Terminal.

* The B_UTF16_CONVERSION was added in system-wide UTF8.h declarations.
This character set is available for enumerating by BCharacterSetRoster
but not listed in public API. Looks like it was just missed;

* Special note about "Text Encoding" entry in Preference File:
So known "shortname" of encoding was used in the preferences file.
For details look on the encodings list in previous version of
Encoding.cpp. As result of migrating to BCharacterSet-provided
resources this list was deleted and is not available anymore.
Instead of it the IANA name of the character encoding targeted
to be used for this purposes. Frankly speaking this part looks
like not working at the moment. The value of text encoding is
hardcoded to "UTF-8" now and is not affected by any operations
in Terminal menu. Note that "shortname" for default encoding
was "UTF8" but the saved value is "UTF-8" - and they are looking
not dependent at all. So this change should not introduce any
kind of backward incompatibility.


# 3eedbbbf0ef16a3e96f76d3f6f2e1750be52a5ac 16-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Handle more pseudoÃ-graphic characters and ways of using them. This gets aptitude (from debianÃ) displaying properly and should also fix midnight commander.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3614af01cd2ad47c8b88a74f2b2be1a62deb2b81 13-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Fix #2673 : allow use of \E(0 to switch to line drawing character set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77ad96c0133d9ffc0a5ac3710e8eb85ba39a68c2 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:
Implements DA, reporting that the terminal is a VT102.
Implements DEXREQTPARM, reporting the same parameters that xterm does.
Fixes DSR 6 to actually report the position of the cursor.

Resolves ticket #4659. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33327 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 630426d679a4db217ef474d72beebe495f1473f3 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:

Implement correctly handling tab stop escape sequences.

Resolves ticket #4657. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdb5a85e80aa0283a4273fc0e35135c20933be54 26-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Ignore ^?. That's what xterm seems to do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a177ec8cf6ae96f95e0ea57ba4ca8b2db2e4f5b3 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for \ESC[%dX (erase characters).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9035d0e247903f4480e1c8a38954b5187fc5aa36 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for \ESC[%dT (scroll screen down).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f6008436d40129dcde5b36e962740d2c8078ca4 16-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for \ESC[%dS (scroll screen up).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8bbf2fc768c7a6ba087fcc1b02b424987b90c0ab 09-May-2008 François Revol <revol@free.fr>

- some more ANSI attributes
- changed comments to pragma comments for parse tables as it's huge, but sadly Pe doesn't make them clickable in the function list...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87f17bdf5c63b637e86d8d7bc05e8aeabf49bfb4 09-May-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

added the g prefix to some global variable

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25401 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eed037b63788902306b30bc698f95400762ca1f5 08-May-2008 François Revol <revol@free.fr>

- SetPosX/Y were wrong, but not yet used.
- implemented HPA/VPA (CV/CH) sequences (set absolute v and h position). It's optional but because the beterm termcap advertises it we must implement it. Also note beterm increments args unlike others. This fixes all obvious display issues with the rhapsody IRC client (a small ncurses client I ported).
- maybe we should switch the CASE_* to an enum ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f9fbe302c5c45c3ec2518650a260605d7 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96