History log of /haiku/src/apps/terminal/TermParse.cpp
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>


# 7a772a55 08-Jan-2023 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: support bracketed paste.

Fixes #18029: Pasting into nano etc. eats newlines and indentation

Change-Id: I935696bb97f4d82b30f73cc488f6317cf847beae
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5987
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# c285a158 15-Apr-2022 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: parse foreground+background in a single SGR escape.

* Whilst testing `starship`, it was apparent that setting both the
foreground & background colours in a single SGR escape is deemed
a valid escape sequence.
* E.g. `ESC[48;2;58;149;199;38;2;47;121;161m` would set the
background to RGB(58,149,199) and foreground to RGB(47,121,161).

Change-Id: I3c14afe2ddf673c85d1678a01e7258587b17f21b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5210
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# c0b591c5 10-Apr-2022 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: implement 24-bit colour.

* Changes `TERM` to `xterm`, as we're now a full colour capable terminal
* Removes now-obsolete GuessPaletteColor from an RGB triple
* Since it's using a struct instead of uint32 for attributes, add a bunch
of helpers for a cleaner implementation
* Pass the TerminalBuffer's palette to the foreground/background get
helpers, for when an indexed colour is returned

Change-Id: I33bd3bb1407b87a237a8bc355093fe549e05b43a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5195
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# f78b75b1 05-Nov-2021 Jérôme Duval <jerome.duval@gmail.com>

Terminal: handle color queries

this allows apps like vim to select a color scheme based on a dark or light background.

Change-Id: Ia9f98d2373523a8b5fa379225a1c906ae075edf7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4693
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 91e93cb7 03-Nov-2021 Jérôme Duval <jerome.duval@gmail.com>

Terminal: handle cursor-color

Change-Id: I73071880c84c713ee3efec40f6ac824364157b83
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4685
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 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>


# e3c74f40 15-Oct-2019 Lukasz Towarek <lukasz.towarek@gmail.com>

Terminal: Add support for extended mouse coordinates

Fixes #11949

Change-Id: I779d1a9af2e3208ba3c055692de5e62b6a7b72fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1919
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 8840b3db 14-Aug-2019 Simon South <simon@simonsouth.net>

Terminal: Allow use of Option as Meta key

Add a configuration setting that allows the left Option key to be used as a
Meta key, and add support for the Escape sequences that control the Meta key's
behaviour.

TermWindow now maintains a copy, shared by all its component TermViews, of the
current key map, and updates this copy automatically when notified by the Input
Server a new key map has been loaded.

The Meta key was an extra modifier key present on early UNIX workstations that
provided access to the "extended" portion of the ASCII character set. Although
it has vanished from modern keyboards certain UNIX software still relies on the
key, most notably GNU Emacs and the GNU readline library, the latter of which
is used by bash and a wide variety of other software that reads input from a
terminal. (Python's interactive mode uses readline, for instance.)

With this patch applied and the new setting enabled, the left Option key can be
used to access additional editing and navigation features at the command line.
It also makes usable the port of GNU Emacs currently available from HaikuDepot.

Fixes #15294.

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


# a1ad8af6 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change a number of sprintf to snprintf.

Fixes a number of -Werrors about format overflow from GCC 8.


# 7cb920e5 23-Sep-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix crash in 256-color setup parsing

Applications can control the 256-color mode and change the palette. This
was not much used until now, but our terminal is now advertising itself
as xterm-256color. Mutt noticed this, tried to use the escape sequence,
and crashed Terminal here.


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


# b2a3f5b1 18-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal: initialize some variables

This is harmless, the sequence of states ensures they would be
initialized when needed anyway, but Coverity decides otherwise.

Fixes #10131 / CID743879.


# 73ad2473 05-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

Remove remaining unnecessary 'volatile' qualifiers


# 7c8e63e1 20-May-2013 Siarzhuk Zharski <zharik@gmx.li>

Terminal: fix handling utf-8 characters in OSC commands

Process the Operating System Control command in multibyte-aware way.
That fixes corresponding behavior for latest versions of Midnight
Commander;


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


# 3d149248 03-Apr-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix support of East Asian Full Width characters

* Re-enable full-width characters detection and display;
* Fix cursor drawing on full-width characters;
* Fix debug dump for multi-byte characters;
* Fix file permissions for debug capture log.

Fixes #6717. Also may improve behaviour related to #6227.


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


# 1dd3b537 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix Alternate/Normal screen's current attributes handling

Handle the current attributes of the TextBuffer consistently with other
Alt/Normal buffer sensitive variables. That fixes, for example, issues
with wrong background coloring of new lines in normal text buffer after
maximizing the terminal window running applications (like MC) performing
output onto alternate screen.


# 13d04396 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Terminal data flow debug capture improved

This modification moves the debug characters capture call directly into
the _NextParseChar(). That allows to capture all data flow without
missing things like OSC control sequences.


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


# fe256869 08-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Move colors table from TermView to TerminalBuffer

* ColorsTable moved to TerminalBuffer to let easy lookup of table
during parsing of control sequences;
* Default Palette initialized from now in TermApp and preserved
from modifying by applications;


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


# b512213b 31-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Support Background Color Erase, switch to xterm-256color

* Lot of fixes to add support of BCE (background color erase). Shell
is switched to emulate xterm-256colors terminal, that is modern and
declare the colors capabilities of our Terminal more precisely;
* Move current character attributes fAttr from TermView to
BasicTerminalBuffer. This reduces count of function parameters on call
various InsertXXX routines;
* In alternative screen buffer mode the whole cells "matrix" of the
screen buffers is taken into account during drawing background of the
cells in the view. In normal mode the "attributes" field of the
TerminalLine is used to detect color of the area after the last
character - there should be no changes with previous behaviour;
* Fix attributes on kSpaceChar-padding short lines. Current _line_
attributes should be used instead of current _global_ attributes;
* Fixed pads and gaps attributes, more accurate handling of ESC[K and K°;
* _Invalidate strings just erased. Fix EraseChars DCH processing;
* Fixes for ESC[J erase lines control sequences;
* Added handling SGR 90-97, 100-107 codes;
* Clean the newly allocated TerminalLine lines;
* More precise cursor background [off-]color estimation at ends of
lines. The current line attributes should be used instead of
hard-coding it to fTextBackground;
* Fixed background color erase in normal screen buffer modes. Wrong
line indexes calculation messed the drawing results or just returned
0 [default] line attributes;
* Some more BCE support: TerminalLine::Clear() now honors current
character attributes;
* Fixes #6143, #6510 and #6424.


# 718a28ce 30-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Add Debug snapshots and capture of Terminal data flow

Two helper functions introduced: "make debug snapshots" triggered by
Ctrl-Cmd-S shortcut and "capture data flow" triggered by Ctrl-Cmd-C
shortcut. The first one makes debug dump of current data both in visual
and in text buffer, including history lines if they available. The second
one mirrors all characters and control sequences that are flowing
through the Parser. Both dump and capture files are saved under /var/log
folder. That functionality available only if the USE_DEBUG_SNAPSHOTS switch is
defined.


# b9b80568 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Revert hrev38316 fore-/background colors customization

This reverts hrev38316 in parts of foreground and background colors
handling. Mentioned revision has hardcoded colors to system ANSI color
entries 7 and 0 correspondently. It is very uncomfortable for the
console programs like Midnight Commander because they become
colors that were defined in the current Terminal scheme and doesn't
correspond to real ANSI color names. For example "ANSI black" can be
black, white, blue, gray or something else in dependency of the current
color scheme configuration. The same side-effect was obviously observed
for "ANSI white" and produced funny color combinations in software.


# 68ea9ce5 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

OSC and color management improoved

* Global kTermColorTable replaced with it's private copy for every
TermView instance. This allows to modify colors table for every view
separately;
* Set of ANSI normal/bright color entries added into preferences;
* Default color table generated dynamicaly using ANSI colors
preferences. 6x6x6 color cubes and grayscale ramp are generated in
xterm colors model;
* Improoved support of Operating System Command control sequences;
* Support for X11 rgb.txt compatible color names. Corresponding entries
are stored in hashed form in application resource and loaded only on
demand.


# f9443b14 26-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Reverting hrev45143:bold characters visual regression

Terminal is GUI application and there are no need to emulate bold
in some kind of color adjustments, especially in case the proposed
emulation look is too far away from results observed on similar software
like xterm, Konsole and XFCE Terminal.


# 2b67e9a3 09-Jan-2013 Adrien Destugues <pulkomandy@gmail.com>

Merge changes from Fonzoterm :
- Report the terminal as xterm-color instead of just xterm, since we handle that fine.
- Tweak the SGR handler a bit to use bright rather than bold in some cases
- Change the color palette so the result is still readable (white on white doesn't work so well) with the default colorscheme.


# adf8818e 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# 5c6b9eb0 23-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Some fixes for GCC 4.6 warning: variable set but not used


# a2f89c58 02-Feb-2012 Siarzhuk Zharski <zharik@gmx.li>

[Coverity] Fixed some uninit fields and return values checks

* Fixed CID2398, CID9945, CID9943, CID4215


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


# f02c85ad 01-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Fix non-static, non-initialized member fProcessID CID 9946; Remove non-used fLockFlag, set un-initilized fSavedAttr member, CID 9945; fixed a few extra spaces

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


# a7538599 22-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Insert an extra space when doing a CR. This ensures the latest attribute setup gets inserted somehow in the line before we go elsewhere.
This gets 256colors.pl to give the right output, as well as useable vim in TERM=xterm-color mode (as far as I can tell).


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


# 384fe022 22-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Use the attributes from the parser instead of trying to guess blindly when inserting a tab. This avoids strange things hapenning when a tab is inserted at the start of a line.


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


# c198735b 23-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Change the way fore and back-color are handled by terminal. They are now color 0 and 7 in the color table, instead of entirely separate colors. This makes more sense and allows the colors to stay even in apps using other colors.
Also make the color attribute propagate to the end of a line. This fixes part of #6143 and allows to use vim with a multicolor syntax highlighting without too much trouble.


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


# 59c2d19e 16-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Rewrite the parsing of xterm extension so that it doesn't touch ANSI standard things
* Some adjustements to the color table to have less duplicate colors


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


# 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


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

Sorry, vim auto-indenting messed it up.


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


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

256 colors support in terminal (compatible with xterm)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38090 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


# 62a8fd3b 07-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed translations of debug output in TermParse.cpp.
* Minor style cleanup.


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


# 6c514d3e 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

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


# 8989d8a5 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the Terminal application. Thanks a lot.
Closes ticket #5850.


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


# 71ddd07b 04-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix the build


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


# 74d2e159 04-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Invoke the shell using /bin/bash instead of /bin/sh.
Use convert_to/from_utf8() directly instead of the homebrewn proxy methods.
Removed CodeConv from the repository.
Remove UTF8WidthTbl.c from the repository, since it's not used anymore.



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


# fede65ad 28-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Fix style violation. Thanks Axel!




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33336 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


# 138343f4 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:

Implement DECALN escape sequence.

Resolves ticket #4658. Thanks!



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


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

Patch by Joshua R. Elsasser:

Implement origin mode.
Save origin mode and text attributes when saving the cursor.
Have RI respect the scroll region.
When erasing the screen actually erase the screen, not just the scroll region.
Implement all three variants of the EL (erase line) sequence.

Thanks! Resolves ticket #4652.



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


# 8d5e9931 26-Aug-2009 Michael Lotz <mmlr@mlotz.ch>

mmlr+anevilyak:
Unconditionally release the reader sem when the previous buffer size was 0
instead of testing for fParserWaiting as there is a race condition between
setting it to true in the parser thread and checking for it in the reader
thread so a release_sem() could be missed causing #4343. To reduce the possible
side effect of needlessly looping through acquire_sem() for too many
unconditionally released sems, we eat them in the parser thread once we're sure
we can't miss an event because of that. Also added a TODO about a memcpy()
optimization as pointed out by Rene.
+alphabranch


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


# 80abc271 14-Aug-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the Ctrl-L behavior: The current screen is now scrolled up completely
instead of actually clearing it, so that it is still in the history.


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


# 11efbf01 24-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Olivier to implement more mouse reporting modes, and thus
fixing bug #2854. Thanks!


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


# 21543141 19-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied slightly changed patch by Olivier that adds basic xterm style mouse
support, thanks!
* This probably closes bug #2854, confirmation pending.


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


# f498be92 03-Feb-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Applied patch by h.z. (slightly modified by myself) included in bug #2715. I tested it briefly with Konatu Tohaba font and it seems to work correctly. Please review.

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


# 1291c38c 19-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented \ESC[?47h and \ESC[?47l (use alternative/normal screen
buffer). These are the sequences our /etc/termcap uses (local less and
vim use the alternative screen buffer now). The ones already implemented
are used e.g. by the termcap of my Linux installation. A bit weird all
those different termcap files, some even with the same version
number.


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


# d04aae8b 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Some preparations for DEC private mode settings support.
* Implemented alternate screen buffer support. Not used by any program
yet, since we still use the beterm termcap entry.


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


# 2f9135e3 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed \ESCM (reverse index). It shall only scroll when the cursor is in
the first line.


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


# 3912340d 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Entering/leaving insert mode should only happen with parameter 4.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25991 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


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

* Fixed \ESC[0J (erase screen below). It shall not erase any character
on the line before the cursor.
* Implemented \ESC[1J (erase screen above.
* Fixed \ESC[2J (erase all). It shall not move the cursor.
* When scrolling only the top part of the screen, we do now also
invalidate the line below the scroll region. Otherwise the view
wouldn't know that they have not been scrolled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25986 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


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

Fixed \ESC[%d;%dr (set scroll region) for omitted second parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25983 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


# 540e66d6 10-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed GetReaderBuf() to _NextParseChar().
* Introduced a small (64 byte) buffer for the parser thread. Instead of
directly reading single characters out of the reader buffer, we read
a full parser buffer and process the characters from the parser
buffer. Thus _NextParseChar() could be inlined, since it merely
consists of a conditional method call and an access to the parser
buffer, now.
* Improved the locking of the terminal buffer. Instead of unlocking and
relocking after every multi-byte char or escape sequence, we only
unlock while refilling the parser buffer.


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


# 5423f9c0 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Some renaming and inlining of TerminalBuffer methods.


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


# 066dcdc3 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the pty reader and output parser thread communicate. The
parser was acquiring a semaphore for each character. Now it only
acquires a semaphore when the buffer is empty. This speeds up output
bound programs. In my setup "seq" is now 3 times faster. Which is still
rather slow.


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


# 52b1d543 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
implementation. Removed all related code from TermView. Removed
the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
of TermView, and TerminalBuffer asynchronously notifies TermView.
This avoids potential deadlocks, fixing #1918. It also speeds
up tty-output-bound programs. E.g. a "seq 10000" is about twice
at fast with the default terminal size in my setup, now. It's
still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
TermView, thus simplifying the code. Instead put the view into a
new parent view which provides the insets. This also fixes
artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
- When scrolling fully down, the (80x25 or whatever) terminal
screen is seen. It is not possible to scroll below the screen as
in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
broken in this respect. As a side effect this fixes #2070.
- When not scrolled fully down, further output won't cause any
scrolling. It is thus possible to read earlier output while
something is still going on. Fixes #1772.
- Particularly to avoid unnecessary scrolling in the not scrolled
fully down case, TermView no longer actually scrolls. It only
sets an internal offset and manually uses CopyBits() as needed.
Introduced a (hacky) BScrollView subclass using a BScrollBar
subclass to make that possible.
* Selection related changes:
- Double/triple click plus dragging allows for selecting multiple
words/lines.
- Word selection no longer selects ranges of non-space characters.
Instead it knows that words are made of alpha numerical chars and
a certain set of other chars, and selects a range of commonly
classified characters (word chars, non-word non-whitespace chars,
whitespace chars). The non-alpha-num word characters should be
made user-settable. Due to missing multi-byte character
classification multi-byte whitespace is not recognized.
- Beyond the end of the line there no longer are invisible spaces.
Trying to select the region selects the end of the line (i.e.
line break). This is similar to how Konsole and xterm work.
- Added auto-scrolling when selecting with the mouse. Formerly the
Terminal scrolled only while moving the mouse. The scroll speed
might need some fine-tuning.
- Don't know what change exactly did that (likely the switch to
non-end-inclusive text ranges used internally), but the
occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
never found anything for me. Should work now, though multi-byte
characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
(in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
(and probably other full-screen terminal apps), due to line
re-wrapping. "less" expects them to be truncated only. When
supporting an alternate screen buffer re-wrapping should be
disabled for it, which should solve the problem.



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


# 15cdb346 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed gcc 4 build.


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


# 4386ce02 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pulled the TermView interface used by TermParse into a new interface
class TerminalBuffer, which will evolve into a TermBuffer replacement
and decouple the parse thread from the window.


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


# 3082bb7d 10-May-2008 François Revol <revol@free.fr>

added a dumpState() call to help debugging EscParse


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25419 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


# 56e415dd 04-Feb-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Opening the preferences window and hitting "cancel" would shrink the
window every time, without reason, since _Revert() was called even if no
changes were made.
Build the list of window sizes dynamically, this way we get rid of some
code duplication.
Removed implementation of TermWindow::QuitRequested(). The
B_QUIT_ON_WINDOW close takes care of quitting the application.
Some cleanups.



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


# c4eae2c1 21-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more renaming


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


# 2fa152e4 18-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed more methods, fixed a warning


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


# 7014c8a3 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


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


# 40056ffa 22-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed CURON/CUROFF constants. Use a boolean instead.


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


# 871d97a9 17-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed the kernel bug that prevented SIGCONT from working properly: the problem
occured if SIGSTOP was already delivered but not yet handled when SIGCONT was
sent. Now, SIGCONT will clear all stop signals from the pending signals.
* SIGTSTP, SIGTTIN, and SIGTTOU are supposed to suspend the thread as well, adapted
the default behaviour to respect that.
* Removed the work-around from r21997 TermParse.cpp for this exact problem.


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


# f3342f28 17-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The Shell destructor was never called. Calling it showed that
the PtyReader thread in TermParse hanged in read(). There's even a
comment in there (by Axel) that read() is never interrupted. Switched to
kill_thread() in TermParse::StopPtyReader() until this problem is fixed.
At least we don't leave running apps around anymore. :)


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


# 2b87a97a 03-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Attach/DetachShell are now private. Added a new TermView constructor
which only specifies the rows and columns, view size is automatically
calculated, and used it in TermWindow. Added a TermView::SetTitle()
method, thus TermParse doesn't call Window() anymore. Some cleanups,
scrollbar was off by one.


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


# 69f6c88d 02-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* The PtyReader thread now just exits when there is no more left to be read.
* setpgid() when spawning the shell was superfluous, as we're already the
session leader.
* Added a comment to TermView::NotifyQuit() about why sending B_QUIT_REQUESTED
to the window isn't such a good idea when you have more than one use for it.


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


# d7b25be8 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

cleaned up a bit thread creation and deletion


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


# 9821c5c4 29-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

on MouseDown(), TermView becomes the focus view (like BTextView does).
Now input works also with a replicanted Terminal, although I have to
click on it twice(!?!?). Don't call exit_thread() anymore in
TermParse::PtyReader(). Hope this is correct. (feel free to beat me on
this).


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


# 2240e7df 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add the add_on field in TermView::Archive(). This way instantiating a
replicant works (thank you Marc). Return errno instead of the return
value of read() (thank you Jerome).
Terminal now can be instantiated as a replicant, although input doesn't
work :((.


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


# ba40a9b6 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a TermView::NotifyQuit() method, used in TermParse, so it doesn't
mess with be_app anymore. Renamed TermView private methods to have an
underscore prefix.


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


# 53763c54 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Don't use exceptions in TermView constructor, as it would cause problems
with instantiation. Note that if an error occurs in the constructor,
we're pretty much screwed. Made some TermView functions private. Some
small cleanup, and some WIP code.


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


# 258e9494 27-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work towards a tabbed terminal. Actually it already somewhat works
(code not enabled, though). Moved scripting from TermWindow to
TermView. Added a SmartTabView which (for now) only resizes the
child views to fit their size. Usual cleanups.


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


# feaebcb5 26-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encoding is now a property of TermView. Changed a lot of code to fix the
problems caused by this change. MakeEncodingMenu doesn't mark the
current encoding anymore, it was already done in TermWindow::MenusBeginning().
Removed custom enums for encodings, just use the ones provided in UTF8.h.
I'm more and more convinced we should drop the custom conversion routines
and use the system ones.


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


# abc47202 23-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved cursor blinking functionality from TermParse into TermView (and
from a BMessageRunner into Pulse()). Removed more unused stuff.
Moved around some constants and definitions. Many style changes. Sorry,
I know the two should be separated, but I had already done so many changes...


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


# ac3a8f54 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made all CodeConv methods static, since there was no point for them to
be nonstatic. Moved TermParse under Shell, Removed some parameters
passing around from TermWindow/TermView/TermParse. Now TermParse threads are
started when the shell is attached to a TermView. Might still be
improved.


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


# f3d05c8b 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encapsulated low level terminal stuff into a Shell class, which also
supersedes spawn_shell(). Removed window parameter from TermParse. Since
we already have a pointer to the view, we just call Window() on it (only
used in one place, no need to save a pointer). Other cleanups.


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


# 4ec75bbe 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


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


# 7f108511 25-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote terminal ID code to use a temporary file - this fixes bug #1174.
* Tried to fix the usual deadlock on quit, but suspending the thread (to
interrupt read()) doesn't have the expected outcome (might be a kernel
bug).
* Removed superfluous MENU_FILE_QUIT and send a B_QUIT_REQUESTED instead.
* Cleanup.


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


# 96d6092e 05-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Re-enabled wait_for_thread() (in place of kill_thread()) inside
TermParse's destructor. PtyReader() was hanging on read(), since the
fd was never closed. Now we do that in ~TermWindow() (for now, we might
want to move some stuff around). Moved there the cleanup code too (from
TermWindow::Quit()). Use B_QUIT_ON_WINDOW_CLOSE flag instead of sending
a message to be_app in Quit().


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


# ff2184e0 05-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

temporary reverted to using kill_thread because of a deadlock on quit


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


# 63dc9cc2 04-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of the global gPfd variable. Big time cleanup, made TermParse a
bit more robust with error checks and likes. Removed unused
TermPrint.cpp file. I hope I didn't get on your
way, Vasilis :)


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


# f2b50593 11-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed pfd to gPfd as it's a global variable, fixed indentation in
TermView.cpp, other style changes


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


# fdfbd664 27-Apr-2006 Jérôme Duval <korli@users.berlios.de>

should fix bug #501, Terminal title can be set with special characters


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


# bd0a76cc 11-Mar-2006 Jérôme Duval <korli@users.berlios.de>

actually check errno instead of master


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


# 8eb8269d 25-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Fixed broken CodeConv semantics (missing length parameter).
* No longer writes to the message data from clipboard.
* some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15153 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


# b2a3f5b114c332cf80cb83c96f599b73833bf6e1 18-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal: initialize some variables

This is harmless, the sequence of states ensures they would be
initialized when needed anyway, but Coverity decides otherwise.

Fixes #10131 / CID743879.


# 73ad2473e7874b3702cf5b0fdf4c81b747812ed9 05-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

Remove remaining unnecessary 'volatile' qualifiers


# 7c8e63e1719ff47f050692b6bf288fd9f1af9981 20-May-2013 Siarzhuk Zharski <zharik@gmx.li>

Terminal: fix handling utf-8 characters in OSC commands

Process the Operating System Control command in multibyte-aware way.
That fixes corresponding behavior for latest versions of Midnight
Commander;


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


# 3d1492487d880a3518397a6326bc7fe26228ccf6 03-Apr-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix support of East Asian Full Width characters

* Re-enable full-width characters detection and display;
* Fix cursor drawing on full-width characters;
* Fix debug dump for multi-byte characters;
* Fix file permissions for debug capture log.

Fixes #6717. Also may improve behaviour related to #6227.


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


# 1dd3b537c3d9e3545d78c50cc26775174eec2051 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Fix Alternate/Normal screen's current attributes handling

Handle the current attributes of the TextBuffer consistently with other
Alt/Normal buffer sensitive variables. That fixes, for example, issues
with wrong background coloring of new lines in normal text buffer after
maximizing the terminal window running applications (like MC) performing
output onto alternate screen.


# 13d0439623324b2157bab26944283d75487a5118 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Terminal data flow debug capture improved

This modification moves the debug characters capture call directly into
the _NextParseChar(). That allows to capture all data flow without
missing things like OSC control sequences.


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


# fe256869783dc1598ee2d7d0c0b582e70724dc96 08-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Move colors table from TermView to TerminalBuffer

* ColorsTable moved to TerminalBuffer to let easy lookup of table
during parsing of control sequences;
* Default Palette initialized from now in TermApp and preserved
from modifying by applications;


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


# b512213be6f7cf9660c07e24a81b7597c8776116 31-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Support Background Color Erase, switch to xterm-256color

* Lot of fixes to add support of BCE (background color erase). Shell
is switched to emulate xterm-256colors terminal, that is modern and
declare the colors capabilities of our Terminal more precisely;
* Move current character attributes fAttr from TermView to
BasicTerminalBuffer. This reduces count of function parameters on call
various InsertXXX routines;
* In alternative screen buffer mode the whole cells "matrix" of the
screen buffers is taken into account during drawing background of the
cells in the view. In normal mode the "attributes" field of the
TerminalLine is used to detect color of the area after the last
character - there should be no changes with previous behaviour;
* Fix attributes on kSpaceChar-padding short lines. Current _line_
attributes should be used instead of current _global_ attributes;
* Fixed pads and gaps attributes, more accurate handling of ESC[K and K°;
* _Invalidate strings just erased. Fix EraseChars DCH processing;
* Fixes for ESC[J erase lines control sequences;
* Added handling SGR 90-97, 100-107 codes;
* Clean the newly allocated TerminalLine lines;
* More precise cursor background [off-]color estimation at ends of
lines. The current line attributes should be used instead of
hard-coding it to fTextBackground;
* Fixed background color erase in normal screen buffer modes. Wrong
line indexes calculation messed the drawing results or just returned
0 [default] line attributes;
* Some more BCE support: TerminalLine::Clear() now honors current
character attributes;
* Fixes #6143, #6510 and #6424.


# 718a28ceadb872b766b13cb3743c575fe416e501 30-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Add Debug snapshots and capture of Terminal data flow

Two helper functions introduced: "make debug snapshots" triggered by
Ctrl-Cmd-S shortcut and "capture data flow" triggered by Ctrl-Cmd-C
shortcut. The first one makes debug dump of current data both in visual
and in text buffer, including history lines if they available. The second
one mirrors all characters and control sequences that are flowing
through the Parser. Both dump and capture files are saved under /var/log
folder. That functionality available only if the USE_DEBUG_SNAPSHOTS switch is
defined.


# b9b805689e2387d8b97225af5ca8b76c5ac0c689 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Revert hrev38316 fore-/background colors customization

This reverts hrev38316 in parts of foreground and background colors
handling. Mentioned revision has hardcoded colors to system ANSI color
entries 7 and 0 correspondently. It is very uncomfortable for the
console programs like Midnight Commander because they become
colors that were defined in the current Terminal scheme and doesn't
correspond to real ANSI color names. For example "ANSI black" can be
black, white, blue, gray or something else in dependency of the current
color scheme configuration. The same side-effect was obviously observed
for "ANSI white" and produced funny color combinations in software.


# 68ea9ce5bbed50e08bf08a151477bbb0e1ac1227 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

OSC and color management improoved

* Global kTermColorTable replaced with it's private copy for every
TermView instance. This allows to modify colors table for every view
separately;
* Set of ANSI normal/bright color entries added into preferences;
* Default color table generated dynamicaly using ANSI colors
preferences. 6x6x6 color cubes and grayscale ramp are generated in
xterm colors model;
* Improoved support of Operating System Command control sequences;
* Support for X11 rgb.txt compatible color names. Corresponding entries
are stored in hashed form in application resource and loaded only on
demand.


# f9443b14d5faa43f98a0a7a5cc85994599bc11a3 26-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Reverting hrev45143:bold characters visual regression

Terminal is GUI application and there are no need to emulate bold
in some kind of color adjustments, especially in case the proposed
emulation look is too far away from results observed on similar software
like xterm, Konsole and XFCE Terminal.


# 2b67e9a3a72acffbd4636d0825e7948c738716fb 09-Jan-2013 Adrien Destugues <pulkomandy@gmail.com>

Merge changes from Fonzoterm :
- Report the terminal as xterm-color instead of just xterm, since we handle that fine.
- Tweak the SGR handler a bit to use bright rather than bold in some cases
- Change the color palette so the result is still readable (white on white doesn't work so well) with the default colorscheme.


# adf8818ec004e8a20614523f3e893303ea318642 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# 5c6b9eb00d0d623c12f72eb82a471cb4c71f4f33 23-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Some fixes for GCC 4.6 warning: variable set but not used


# a2f89c5843433b8d93a96fc2cfc98c29ddc628f8 02-Feb-2012 Siarzhuk Zharski <zharik@gmx.li>

[Coverity] Fixed some uninit fields and return values checks

* Fixed CID2398, CID9945, CID9943, CID4215


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


# f02c85adbab949acfbac1b260db2f7f3caa05d8e 01-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Fix non-static, non-initialized member fProcessID CID 9946; Remove non-used fLockFlag, set un-initilized fSavedAttr member, CID 9945; fixed a few extra spaces

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


# a753859956cf27660c5dffc55ee46be840790366 22-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Insert an extra space when doing a CR. This ensures the latest attribute setup gets inserted somehow in the line before we go elsewhere.
This gets 256colors.pl to give the right output, as well as useable vim in TERM=xterm-color mode (as far as I can tell).


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


# 384fe0223480bf613f2978f386ce5d4f15dc3b4c 22-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Use the attributes from the parser instead of trying to guess blindly when inserting a tab. This avoids strange things hapenning when a tab is inserted at the start of a line.


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


# c198735b15360cf46aa6d2837f4bb3b4686139d0 23-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Change the way fore and back-color are handled by terminal. They are now color 0 and 7 in the color table, instead of entirely separate colors. This makes more sense and allows the colors to stay even in apps using other colors.
Also make the color attribute propagate to the end of a line. This fixes part of #6143 and allows to use vim with a multicolor syntax highlighting without too much trouble.


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


# 59c2d19e1ee873dc7fe01025a92b8bd9d2a7b0b7 16-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Rewrite the parsing of xterm extension so that it doesn't touch ANSI standard things
* Some adjustements to the color table to have less duplicate colors


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


# 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


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

Sorry, vim auto-indenting messed it up.


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


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

256 colors support in terminal (compatible with xterm)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38090 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


# 62a8fd3b65e1de120207ead4a90230fe79f3b7b5 07-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed translations of debug output in TermParse.cpp.
* Minor style cleanup.


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


# 6c514d3e3bfc9c33f9f4a2edd0b593d734046c8f 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

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


# 8989d8a52e0ca6b551f2a57b51a7f1c77726144b 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the Terminal application. Thanks a lot.
Closes ticket #5850.


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


# 71ddd07bcdf3a729c85a748213f7b37fe698f9be 04-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix the build


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


# 74d2e1599a2dffe4be4f58d199c413947d241b89 04-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Invoke the shell using /bin/bash instead of /bin/sh.
Use convert_to/from_utf8() directly instead of the homebrewn proxy methods.
Removed CodeConv from the repository.
Remove UTF8WidthTbl.c from the repository, since it's not used anymore.



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


# fede65ad8d08b71f3db838b8ac1e8d1039fb5ca6 28-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Fix style violation. Thanks Axel!




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33336 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


# 138343f4f82e211fad68338633970d4d6657ba20 27-Sep-2009 Rene Gollent <anevilyak@gmail.com>

Patch by Joshua R. Elsasser:

Implement DECALN escape sequence.

Resolves ticket #4658. Thanks!



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


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

Patch by Joshua R. Elsasser:

Implement origin mode.
Save origin mode and text attributes when saving the cursor.
Have RI respect the scroll region.
When erasing the screen actually erase the screen, not just the scroll region.
Implement all three variants of the EL (erase line) sequence.

Thanks! Resolves ticket #4652.



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


# 8d5e993169256ed80cc208d010179e9ff3f55708 26-Aug-2009 Michael Lotz <mmlr@mlotz.ch>

mmlr+anevilyak:
Unconditionally release the reader sem when the previous buffer size was 0
instead of testing for fParserWaiting as there is a race condition between
setting it to true in the parser thread and checking for it in the reader
thread so a release_sem() could be missed causing #4343. To reduce the possible
side effect of needlessly looping through acquire_sem() for too many
unconditionally released sems, we eat them in the parser thread once we're sure
we can't miss an event because of that. Also added a TODO about a memcpy()
optimization as pointed out by Rene.
+alphabranch


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


# 80abc2712f495a167b07746db3b3acaaa8641253 14-Aug-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the Ctrl-L behavior: The current screen is now scrolled up completely
instead of actually clearing it, so that it is still in the history.


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


# 11efbf01602654bfa8fb29b0681e90c2bb21f8c2 24-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Olivier to implement more mouse reporting modes, and thus
fixing bug #2854. Thanks!


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


# 21543141ddb5ffd4a6f8e11254ca9015fef36a05 19-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied slightly changed patch by Olivier that adds basic xterm style mouse
support, thanks!
* This probably closes bug #2854, confirmation pending.


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


# f498be9297862dda8330e3dae2b730afba2570cd 03-Feb-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Applied patch by h.z. (slightly modified by myself) included in bug #2715. I tested it briefly with Konatu Tohaba font and it seems to work correctly. Please review.

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


# 1291c38c181ac85064fb8e30ac533c03b45eb7d9 19-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented \ESC[?47h and \ESC[?47l (use alternative/normal screen
buffer). These are the sequences our /etc/termcap uses (local less and
vim use the alternative screen buffer now). The ones already implemented
are used e.g. by the termcap of my Linux installation. A bit weird all
those different termcap files, some even with the same version
number.


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


# d04aae8b80964ab6a3ab7725baf930d2320d4133 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Some preparations for DEC private mode settings support.
* Implemented alternate screen buffer support. Not used by any program
yet, since we still use the beterm termcap entry.


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


# 2f9135e39a1db361eaf912cec15afaf81ef12a5c 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed \ESCM (reverse index). It shall only scroll when the cursor is in
the first line.


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


# 3912340deeb4e91c01c002660e77a0191e5ef9fa 17-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Entering/leaving insert mode should only happen with parameter 4.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25991 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


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

* Fixed \ESC[0J (erase screen below). It shall not erase any character
on the line before the cursor.
* Implemented \ESC[1J (erase screen above.
* Fixed \ESC[2J (erase all). It shall not move the cursor.
* When scrolling only the top part of the screen, we do now also
invalidate the line below the scroll region. Otherwise the view
wouldn't know that they have not been scrolled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25986 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


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

Fixed \ESC[%d;%dr (set scroll region) for omitted second parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25983 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


# 540e66d6a6ba2faca672fffb89be44787df2c219 10-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed GetReaderBuf() to _NextParseChar().
* Introduced a small (64 byte) buffer for the parser thread. Instead of
directly reading single characters out of the reader buffer, we read
a full parser buffer and process the characters from the parser
buffer. Thus _NextParseChar() could be inlined, since it merely
consists of a conditional method call and an access to the parser
buffer, now.
* Improved the locking of the terminal buffer. Instead of unlocking and
relocking after every multi-byte char or escape sequence, we only
unlock while refilling the parser buffer.


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


# 5423f9c0accf4d0c1ded13b1de78573e873d084b 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Some renaming and inlining of TerminalBuffer methods.


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


# 066dcdc34b9a72cc5ad89333895b4890e443a4cc 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the pty reader and output parser thread communicate. The
parser was acquiring a semaphore for each character. Now it only
acquires a semaphore when the buffer is empty. This speeds up output
bound programs. In my setup "seq" is now 3 times faster. Which is still
rather slow.


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


# 52b1d543e80f5d48e6ef841fff4780c7c87bae11 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
implementation. Removed all related code from TermView. Removed
the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
of TermView, and TerminalBuffer asynchronously notifies TermView.
This avoids potential deadlocks, fixing #1918. It also speeds
up tty-output-bound programs. E.g. a "seq 10000" is about twice
at fast with the default terminal size in my setup, now. It's
still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
TermView, thus simplifying the code. Instead put the view into a
new parent view which provides the insets. This also fixes
artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
- When scrolling fully down, the (80x25 or whatever) terminal
screen is seen. It is not possible to scroll below the screen as
in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
broken in this respect. As a side effect this fixes #2070.
- When not scrolled fully down, further output won't cause any
scrolling. It is thus possible to read earlier output while
something is still going on. Fixes #1772.
- Particularly to avoid unnecessary scrolling in the not scrolled
fully down case, TermView no longer actually scrolls. It only
sets an internal offset and manually uses CopyBits() as needed.
Introduced a (hacky) BScrollView subclass using a BScrollBar
subclass to make that possible.
* Selection related changes:
- Double/triple click plus dragging allows for selecting multiple
words/lines.
- Word selection no longer selects ranges of non-space characters.
Instead it knows that words are made of alpha numerical chars and
a certain set of other chars, and selects a range of commonly
classified characters (word chars, non-word non-whitespace chars,
whitespace chars). The non-alpha-num word characters should be
made user-settable. Due to missing multi-byte character
classification multi-byte whitespace is not recognized.
- Beyond the end of the line there no longer are invisible spaces.
Trying to select the region selects the end of the line (i.e.
line break). This is similar to how Konsole and xterm work.
- Added auto-scrolling when selecting with the mouse. Formerly the
Terminal scrolled only while moving the mouse. The scroll speed
might need some fine-tuning.
- Don't know what change exactly did that (likely the switch to
non-end-inclusive text ranges used internally), but the
occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
never found anything for me. Should work now, though multi-byte
characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
(in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
(and probably other full-screen terminal apps), due to line
re-wrapping. "less" expects them to be truncated only. When
supporting an alternate screen buffer re-wrapping should be
disabled for it, which should solve the problem.



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


# 15cdb34646b81a51c369de9c9c54df65f7d83325 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed gcc 4 build.


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


# 4386ce0206df74a06409dc1d5ebb0db3596c1e5c 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pulled the TermView interface used by TermParse into a new interface
class TerminalBuffer, which will evolve into a TermBuffer replacement
and decouple the parse thread from the window.


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


# 3082bb7d0c14b5b5604384251806a9a8216473f1 10-May-2008 François Revol <revol@free.fr>

added a dumpState() call to help debugging EscParse


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25419 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


# 56e415dda141250b366bc3d5edd71814960129dd 04-Feb-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Opening the preferences window and hitting "cancel" would shrink the
window every time, without reason, since _Revert() was called even if no
changes were made.
Build the list of window sizes dynamically, this way we get rid of some
code duplication.
Removed implementation of TermWindow::QuitRequested(). The
B_QUIT_ON_WINDOW close takes care of quitting the application.
Some cleanups.



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


# c4eae2c1fc5ea7f6cb86552efcb895eee38e8fad 21-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more renaming


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


# 2fa152e4f08d89b487f16ac6fb4e3a14aceac028 18-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed more methods, fixed a warning


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


# 7014c8a3790cfbd79887ef7092b6c89ad9e548bd 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


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


# 40056ffaaf9a13fc5cbc8087c059bb974ad39c9c 22-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed CURON/CUROFF constants. Use a boolean instead.


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


# 871d97a9f50e5b5ce5aee37c98bc83c2a519f2f8 17-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed the kernel bug that prevented SIGCONT from working properly: the problem
occured if SIGSTOP was already delivered but not yet handled when SIGCONT was
sent. Now, SIGCONT will clear all stop signals from the pending signals.
* SIGTSTP, SIGTTIN, and SIGTTOU are supposed to suspend the thread as well, adapted
the default behaviour to respect that.
* Removed the work-around from r21997 TermParse.cpp for this exact problem.


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


# f3342f281b5a3da3c48c2e77faa6cba97224c6aa 17-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The Shell destructor was never called. Calling it showed that
the PtyReader thread in TermParse hanged in read(). There's even a
comment in there (by Axel) that read() is never interrupted. Switched to
kill_thread() in TermParse::StopPtyReader() until this problem is fixed.
At least we don't leave running apps around anymore. :)


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


# 2b87a97ac6932e3421e0a8a071a7d31f00ec9c73 03-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Attach/DetachShell are now private. Added a new TermView constructor
which only specifies the rows and columns, view size is automatically
calculated, and used it in TermWindow. Added a TermView::SetTitle()
method, thus TermParse doesn't call Window() anymore. Some cleanups,
scrollbar was off by one.


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


# 69f6c88d58365e044396fc7c1e67e52a14fff31a 02-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* The PtyReader thread now just exits when there is no more left to be read.
* setpgid() when spawning the shell was superfluous, as we're already the
session leader.
* Added a comment to TermView::NotifyQuit() about why sending B_QUIT_REQUESTED
to the window isn't such a good idea when you have more than one use for it.


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


# d7b25be846c4a69b128cf286b470b27f859cded5 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

cleaned up a bit thread creation and deletion


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


# 9821c5c4e1f00af18c088b2a556dd50683484c35 29-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

on MouseDown(), TermView becomes the focus view (like BTextView does).
Now input works also with a replicanted Terminal, although I have to
click on it twice(!?!?). Don't call exit_thread() anymore in
TermParse::PtyReader(). Hope this is correct. (feel free to beat me on
this).


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


# 2240e7df9b93d2c54ea3f99ab57f705877b04f6b 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add the add_on field in TermView::Archive(). This way instantiating a
replicant works (thank you Marc). Return errno instead of the return
value of read() (thank you Jerome).
Terminal now can be instantiated as a replicant, although input doesn't
work :((.


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


# ba40a9b6a73de2819afb94bf0f1709e480bc12ce 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a TermView::NotifyQuit() method, used in TermParse, so it doesn't
mess with be_app anymore. Renamed TermView private methods to have an
underscore prefix.


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


# 53763c54d1c6dac22e9144cea381eddb0b64e89b 30-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Don't use exceptions in TermView constructor, as it would cause problems
with instantiation. Note that if an error occurs in the constructor,
we're pretty much screwed. Made some TermView functions private. Some
small cleanup, and some WIP code.


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


# 258e949475ef1971cc5560dd0715f7199123e7a4 27-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More work towards a tabbed terminal. Actually it already somewhat works
(code not enabled, though). Moved scripting from TermWindow to
TermView. Added a SmartTabView which (for now) only resizes the
child views to fit their size. Usual cleanups.


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


# feaebcb571a64ea882404db119de225ad703c6eb 26-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encoding is now a property of TermView. Changed a lot of code to fix the
problems caused by this change. MakeEncodingMenu doesn't mark the
current encoding anymore, it was already done in TermWindow::MenusBeginning().
Removed custom enums for encodings, just use the ones provided in UTF8.h.
I'm more and more convinced we should drop the custom conversion routines
and use the system ones.


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


# abc4720231b10f87fa94d5d1e47d18650cf457de 23-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved cursor blinking functionality from TermParse into TermView (and
from a BMessageRunner into Pulse()). Removed more unused stuff.
Moved around some constants and definitions. Many style changes. Sorry,
I know the two should be separated, but I had already done so many changes...


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


# ac3a8f54460005262afcdc310481d6ba91ef6ff9 21-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made all CodeConv methods static, since there was no point for them to
be nonstatic. Moved TermParse under Shell, Removed some parameters
passing around from TermWindow/TermView/TermParse. Now TermParse threads are
started when the shell is attached to a TermView. Might still be
improved.


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


# f3d05c8b3ae5de10c8402ed38793fd38605ed13f 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Encapsulated low level terminal stuff into a Shell class, which also
supersedes spawn_shell(). Removed window parameter from TermParse. Since
we already have a pointer to the view, we just call Window() on it (only
used in one place, no need to save a pointer). Other cleanups.


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


# 4ec75bbee658e4c68b82281f0ee833fcfa15e018 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


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


# 7f1085115e560e38a524331ecda040502a2a81cd 25-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote terminal ID code to use a temporary file - this fixes bug #1174.
* Tried to fix the usual deadlock on quit, but suspending the thread (to
interrupt read()) doesn't have the expected outcome (might be a kernel
bug).
* Removed superfluous MENU_FILE_QUIT and send a B_QUIT_REQUESTED instead.
* Cleanup.


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


# 96d6092ef667a82e805c1c0839704f017d792885 05-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Re-enabled wait_for_thread() (in place of kill_thread()) inside
TermParse's destructor. PtyReader() was hanging on read(), since the
fd was never closed. Now we do that in ~TermWindow() (for now, we might
want to move some stuff around). Moved there the cleanup code too (from
TermWindow::Quit()). Use B_QUIT_ON_WINDOW_CLOSE flag instead of sending
a message to be_app in Quit().


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


# ff2184e07d8e4fc402aaf8f6e7359a280dabb8fb 05-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

temporary reverted to using kill_thread because of a deadlock on quit


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


# 63dc9cc262a181e2da2a6ec5701b82a403f30d9a 04-Mar-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of the global gPfd variable. Big time cleanup, made TermParse a
bit more robust with error checks and likes. Removed unused
TermPrint.cpp file. I hope I didn't get on your
way, Vasilis :)


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


# f2b50593a83669a4e181d492db3c771dfc38fadb 11-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed pfd to gPfd as it's a global variable, fixed indentation in
TermView.cpp, other style changes


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


# fdfbd66456b9ac3550fa59bacd597a8b5b4804ce 27-Apr-2006 Jérôme Duval <korli@users.berlios.de>

should fix bug #501, Terminal title can be set with special characters


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


# bd0a76ccc483688b84f08a0ed1388ffef6cbe806 11-Mar-2006 Jérôme Duval <korli@users.berlios.de>

actually check errno instead of master


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


# 8eb8269db6f96501cf7deea9e56c389ba93494c0 25-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Fixed broken CodeConv semantics (missing length parameter).
* No longer writes to the message data from clipboard.
* some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15153 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