History log of /haiku/src/apps/terminal/Jamfile
Revision Date Author Comments
# 939b20db 25-Jan-2023 Augustin Cavalier <waddlesplash@gmail.com>

Terminal: Add new files to DoCatalogs.

Fixes #18232.


# 1b370545 17-Dec-2022 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: graphical settings for configuring themes.

Implements #16835: Make colour schemes modular.
Implements #15936: Terminal settings should allow to drop a colour.

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


# 4429c2c8 16-Jun-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Terminal: remove fullscreen tooltip

Whenever using Terminal in fullscreen mode, there is a permanently on
tooltip with the shortcut to exit fullscreen mode wherever you leave
your mouse. This is super annoying and as a result I find myself rarely
using fullscreen mode.

Remove the tooltip, and instead add a button to the right of the tab bar
to exit fullscreen mode, as done in WonderBrush and WebPositive.

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


# 1e60bdea 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove all invocations of SetSubDirSupportedPlatformsBeOSCompatible.


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 4494d99e 22-Nov-2013 Humdinger <humdingerb@gmail.com>

Added TermViewStates.cpp to the Jamfile.

TermViewStates.cpp wasn't translatable before.


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# e9bad28a 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Add a hyperlink mode

When holding down Command, text under the mouse is checked whether it
looks like a URL or a local path. If so, it is highlighted and can be
clicked, which will open the URL/file. Right-clicking opens a context
menu with items for opening the link/file or copying it to the
clipboard. When additionally holding down Shift, path prefixes up to
the component under the mouse will be considered (no effect for URLs).

Changes:
* Add HyperLink class. Encapsulates a type, the address, and an
optional base address. Features an Open() method to open the address.
* Move/add some string constants to TermConst.
* Move TermView::CharClassifier to top level and rename to
DefaultCharClassifier.
* Introduce TermViewHighlight and TermViewHighlighter. The former
refers to a range of text in a TermView's text buffer. It also
contains a pointer to a TermViewHighlighter object, which specifies
how the text range shall be rendered (colors and attributes).
* TermView:
- Add respective _{Add,Remove}Highlight() methods and adjust the code
to support highlights.
- Make the selection a TermViewHighlight. At least its visual aspect
is now handled like other highlights.
- Introduce an inner TextBufferSyncLocker. It is used instead of
BAutolock when locking the text buffer to synchronize the visual
buffer with it. After it unlocks it calls
_VisibleTextBufferChanged(), if the visual text buffer has changed,
which in turn calls a new callback on the active state.
- Add WindowActivated() and ModifiersChanged() callbacks to the state
interface.
- Add new states HyperLinkState and HyperLinkMenuState which
implement the new feature.

Fix modifier issues


# bda35ef5 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Pull user input handling into state classes


# b0b7933e 07-Feb-2013 Siarzhuk Zharski <zharik@gmx.li>

Use stack for storing saved cursor positions

That fixes issue with latest versions of Midnight Commander - it
"restores" on exit the latest postion was set, that is equal to 0.0.


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


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


# c2a14a1a 06-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Can't use static const PREF_*_COLOR keys for translation.
Revert to literals for color menu items which needs, them, being localized.
Add missing source files to DoCatalogs.


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


# ca598670 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the shell process ID from ActiveProcessInfo and moved it to new class
ShellInfo, which also contains a flag whether the shell is the default shell.
* If the Terminal has been started with a custom shell, also replace "%p" in
the title by its name, when active.
* Also show the on-close alert for the custom shell.

Fixes #6844.


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


# 105093fd 21-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class TerminalRoster, which maintains a list of all running
terminals, including their window minimized status and workspaces. These
information are shared via our special-purpose clipboard. TerminalRoster
mainly acts as a cache.
* Removed the terminal ID management from TermApp. Most is now done by
TerminalRoster, the rest has been moved to TermWindow.
* Moved the terminal position file reading/writing from TermApp to TermWindow.
* Moved the remaining terminal window title handling from TermApp to TermWindow.
* Replaced the solution for #6613 implemented in r39530 (enabling/disabling the
"Switch Terminals" menu item depending on whether there are other Terminals).
The new solution is more correct, since it does enable the menu item, if and
only if switching to another Terminal will happen when triggering it. I.e.
minimized Terminals and ones on other workspaces are ignored.

Should also fix #6612, since there's no synchronous communication between
different terminal apps anymore.


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


# 135f173d 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added SetTitleDialog, a dialog to edit a tab/window title.
* Use the dialog to open the tab title. Opened on double-click on the tab.


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


# b6476732 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the reusable part of the tab/window title prefs tool tips to
TermConst.h/cpp.


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


# 02ee32bb 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



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


# 37322c4b 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class ShellParameters that bundles all parameters passed to the
shell.
* Also added a parameter for the current working directory and. If supplied,
it is applied in Shell::_Spawn().
* Pass the current working directory of the active tab when opening a new
tab. Implements part of #6712.


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


# b27862d2 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Reverted r39451. Instead introduced new class ActiveProcessInfo and added
method GetActiveProcessInfo() to Shell and TermView to get such an info for
the current foreground process group leader. Currently the info only contains
the ID, name, and current directory of the process.


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


# 397fd7f5 16-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

A better fix than r38136: Remove the useless iostream include from Shell.cpp,
perhaps a left-over from debugging output? Thanks to Axel for reviewing.


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


# 30160db4 16-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed the build. Perhaps it's not needed for the GCC2 build.


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


# 80490c77 16-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add a menufield to select color combinations, and add obvious
"white on black" and "black on white". For some reason these aren't
applied live, like when you chose a custom combo.
I'm not really fond of the code, and will rework it in the next few days.
But at least it works!


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


# be8fa2fb 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Update all applications in tree to use the new localizing system
* Remove the old one from the locale librairy, with some cleanup
Known regressions :
* readonlybootprompt will no longer update the locale settings : the
method used messed with internal undocumented things
* external localized apps (webpositive for example) will not run
anymore.


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


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

The Jamfile was actually missing the DoCatalogs part. This may also be the case
for another patch from Jorma Karvonen which I have landed.


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


# 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


# 8c6aa65e 19-Dec-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented input method handling. Unfortunately, due to bug #4926, it's
completely unusable (it's disabled currently anyway).
Shell::AttachBuffer() returns a status_t now (instead of void), so the caller
can do something in case it fails.
Simplified some methods, removed unused stuff.


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


# 92d7fb19 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed "Coding" to "Encoding" and adjusted other files accordingly


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


# ee0491f3 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

-Fixed some gcc4 warnings
-No need to link to libgame


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


# 6b87afd3 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the Find Window a bit wider by default, moved some functions around,
got rid of MenuUtil.h/cpp.
Some style change.



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


# 70f7a8ad 20-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Cleanup: removed unused messages constant and classes, merged AppearPrefView
with PrefView, moved main from Terminal.cpp to TermApp.cpp.


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


# 83623306 19-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Resource clean-up. Removing bitmap icons. Updating copyright dates. Removing dead code and redundant comments. Ending files in a newline.

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


# 16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

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


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

Fixed mouse copy'n'paste support. We use a separate clipboard for mouse
selection which we update whenever the first mouse button is released.
This also enables copy'n'paste between Terminals.


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


# 4c9d4b02 14-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Change the line history to a more compact format. We reserve
lines * (width + 8) bytes which is only a little more than a sixth of
what it was before. The effect on performance is relatively small. In
my tests I measured about 2% slowdown.
* Fixed artifacts after soft-wrapped lines.
* Re-enabled cursor blinking. I changed it so that the cursor is 1s
shown and 0.5s hidden (instead of 1s each). Tell me what you think.


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


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

Pulled base class BasicTerminalBuffer out of TerminalBuffer. It contains
pretty much all the meaty code. Left in TerminalBuffer is only stuff
that didn't quite fit, like the encoding and view notifications.


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


# 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


# bb4632f1 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Stolen Ingo's Arguments class from Miniterminal and used it in place of
GPL'd code in TermApp (slightly modified, and bugfixed, even :P).
TermView now accepts an argument vector instead of a commandline. Same
thing for Shell.
Temporarily(?) removed some commandline options.
This also fixes bug #1396 (tested)


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


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

Got rid of TermBaseView


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


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

Renamed spawn.cpp/h to Shell.cpp/h and updated the other source files to
take this change into account


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


# 252fb08a 21-May-2007 Stephan Aßmus <superstippi@gmx.de>

* remove Terminal from the test environment
* small update to icon
* link with libgame.so (includes set_mouse_position())


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


# f8cc2a74 13-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed *Dlg to *Window, since the term "Dialog" is alien to the beos
api. Thanks to Vasilis Kaoutsis for the suggestion. I'll rename the
classes with the next commit.


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


# f95dbf89 22-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implement Find in Terminal. This is almost identical to R5's Terminal, except that it doesn't look for regexps. Code tested by me. Thanks to jburton for helping me out and reviewing the patch.

This resolves bug #199.


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


# 8fee027e 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Updated the resource app version information.


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


# cbf91a30 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Terminal now also builds on R5/Dano.


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


# ba98d1b0 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Terminal is now also built for the libbe_test platform; removed explicit linking
against libroot.so.
* libtracker.so is now also built for that one, and also removed libroot.so linking.
* MiniTerminal is no longer build for the libbe_test platform.


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


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


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


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

Forgot to commit Jamfile before: removed AboutWindow.cpp.
Cleaned up ShellPrefView a little.


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


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

Moved Andrew's Terminal files into a subfolder - maybe this should be moved
to his developer branch. Maybe he wants to integrate the changes, too, whatever
he has done.
Removed unused files (muterm-2.3.zip, Jamfile - both still in history).


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


# 2146e4d6 23-Jun-2005 DarkWyrm <darkwyrm@gmail.com>

Removed Terminal from build and made Terminal2 the real app


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


# 9105df34 05-Jul-2004 shatty <shatty@nowhere.fake>

add MYOB's MuTerm adaptation


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


# 3349a7ac 10-Aug-2003 shatty <shatty@nowhere.fake>

removed BTextView subview, it will not work for background text, complex cursor control, and will probably have problems with wide character alignment. also fixed long-standing scrollbar bug (stupid missing argument bug).


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


# 2deca29a 10-Aug-2003 shatty <shatty@nowhere.fake>

new terminal behaves like r5 terminal, 1 terminal window per terminal application


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


# 375d0381 09-Aug-2003 shatty <shatty@nowhere.fake>

added terminal resources


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


# 0873b6e5 24-Apr-2003 shatty <shatty@nowhere.fake>

move towards smarter scrollers


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


# 4bf79052 22-Apr-2003 shatty <shatty@nowhere.fake>

basic application model stolen from styled edit


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


# 5abaecfe 21-Apr-2003 shatty <shatty@nowhere.fake>

MuTerminal is coming to OBOS


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


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 4494d99ebaf4880b0a9956b4427015c753b3c2d2 22-Nov-2013 Humdinger <humdingerb@gmail.com>

Added TermViewStates.cpp to the Jamfile.

TermViewStates.cpp wasn't translatable before.


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# e9bad28aafc6b71378bb71139cde6269bbb0afa7 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Add a hyperlink mode

When holding down Command, text under the mouse is checked whether it
looks like a URL or a local path. If so, it is highlighted and can be
clicked, which will open the URL/file. Right-clicking opens a context
menu with items for opening the link/file or copying it to the
clipboard. When additionally holding down Shift, path prefixes up to
the component under the mouse will be considered (no effect for URLs).

Changes:
* Add HyperLink class. Encapsulates a type, the address, and an
optional base address. Features an Open() method to open the address.
* Move/add some string constants to TermConst.
* Move TermView::CharClassifier to top level and rename to
DefaultCharClassifier.
* Introduce TermViewHighlight and TermViewHighlighter. The former
refers to a range of text in a TermView's text buffer. It also
contains a pointer to a TermViewHighlighter object, which specifies
how the text range shall be rendered (colors and attributes).
* TermView:
- Add respective _{Add,Remove}Highlight() methods and adjust the code
to support highlights.
- Make the selection a TermViewHighlight. At least its visual aspect
is now handled like other highlights.
- Introduce an inner TextBufferSyncLocker. It is used instead of
BAutolock when locking the text buffer to synchronize the visual
buffer with it. After it unlocks it calls
_VisibleTextBufferChanged(), if the visual text buffer has changed,
which in turn calls a new callback on the active state.
- Add WindowActivated() and ModifiersChanged() callbacks to the state
interface.
- Add new states HyperLinkState and HyperLinkMenuState which
implement the new feature.

Fix modifier issues


# bda35ef5dc71c1c4a4e831233f937bcb130bd284 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Pull user input handling into state classes


# b0b7933ee7fb52833ec82118e00a6c085b4a4237 07-Feb-2013 Siarzhuk Zharski <zharik@gmx.li>

Use stack for storing saved cursor positions

That fixes issue with latest versions of Midnight Commander - it
"restores" on exit the latest postion was set, that is equal to 0.0.


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


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


# c2a14a1a859b5627493bd294641715fb27892a14 06-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Can't use static const PREF_*_COLOR keys for translation.
Revert to literals for color menu items which needs, them, being localized.
Add missing source files to DoCatalogs.


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


# ca598670fb927e196eb2a5ab90fa03bfb5dac0a2 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the shell process ID from ActiveProcessInfo and moved it to new class
ShellInfo, which also contains a flag whether the shell is the default shell.
* If the Terminal has been started with a custom shell, also replace "%p" in
the title by its name, when active.
* Also show the on-close alert for the custom shell.

Fixes #6844.


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


# 105093fddbb85778be7ebb0d99cb5fa844ea0ee4 21-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class TerminalRoster, which maintains a list of all running
terminals, including their window minimized status and workspaces. These
information are shared via our special-purpose clipboard. TerminalRoster
mainly acts as a cache.
* Removed the terminal ID management from TermApp. Most is now done by
TerminalRoster, the rest has been moved to TermWindow.
* Moved the terminal position file reading/writing from TermApp to TermWindow.
* Moved the remaining terminal window title handling from TermApp to TermWindow.
* Replaced the solution for #6613 implemented in r39530 (enabling/disabling the
"Switch Terminals" menu item depending on whether there are other Terminals).
The new solution is more correct, since it does enable the menu item, if and
only if switching to another Terminal will happen when triggering it. I.e.
minimized Terminals and ones on other workspaces are ignored.

Should also fix #6612, since there's no synchronous communication between
different terminal apps anymore.


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


# 135f173dcebc6dbbeb048a7a0e065f8e24bf510f 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added SetTitleDialog, a dialog to edit a tab/window title.
* Use the dialog to open the tab title. Opened on double-click on the tab.


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


# b6476732274148903e53f91a46fb7e7e8185977c 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the reusable part of the tab/window title prefs tool tips to
TermConst.h/cpp.


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


# 02ee32bb0d3cc6680c421177bb490dba84230081 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



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


# 37322c4b52e4d9922fb1c7289a3f0d129ab1841b 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new class ShellParameters that bundles all parameters passed to the
shell.
* Also added a parameter for the current working directory and. If supplied,
it is applied in Shell::_Spawn().
* Pass the current working directory of the active tab when opening a new
tab. Implements part of #6712.


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


# b27862d236b20483e88aa24aa8e2d8fed2e00907 16-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Reverted r39451. Instead introduced new class ActiveProcessInfo and added
method GetActiveProcessInfo() to Shell and TermView to get such an info for
the current foreground process group leader. Currently the info only contains
the ID, name, and current directory of the process.


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


# 397fd7f5d04d74c1c336b6217c2a2afaa274548f 16-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

A better fix than r38136: Remove the useless iostream include from Shell.cpp,
perhaps a left-over from debugging output? Thanks to Axel for reviewing.


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


# 30160db4893918214d5495269d7ce9e72c2e19ad 16-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed the build. Perhaps it's not needed for the GCC2 build.


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


# 80490c776a1a727daf66f2eec0431d43cab69c73 16-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Add a menufield to select color combinations, and add obvious
"white on black" and "black on white". For some reason these aren't
applied live, like when you chose a custom combo.
I'm not really fond of the code, and will rework it in the next few days.
But at least it works!


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


# be8fa2fb3088ab1921612b60f352dd9334b40b3d 02-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Update all applications in tree to use the new localizing system
* Remove the old one from the locale librairy, with some cleanup
Known regressions :
* readonlybootprompt will no longer update the locale settings : the
method used messed with internal undocumented things
* external localized apps (webpositive for example) will not run
anymore.


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


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

The Jamfile was actually missing the DoCatalogs part. This may also be the case
for another patch from Jorma Karvonen which I have landed.


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


# 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


# 8c6aa65eb6a967af6ade9abeee7c961ff84005c7 19-Dec-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented input method handling. Unfortunately, due to bug #4926, it's
completely unusable (it's disabled currently anyway).
Shell::AttachBuffer() returns a status_t now (instead of void), so the caller
can do something in case it fails.
Simplified some methods, removed unused stuff.


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


# 92d7fb19f14435b56cf3722c2bcf6c8bc5ac1a13 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed "Coding" to "Encoding" and adjusted other files accordingly


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


# ee0491f3e741c15e5cae482d065109d01eb3391d 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

-Fixed some gcc4 warnings
-No need to link to libgame


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


# 6b87afd3608687b867eb276402e945e273d0add6 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the Find Window a bit wider by default, moved some functions around,
got rid of MenuUtil.h/cpp.
Some style change.



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


# 70f7a8ad0f5ae85b18c2ae9ad9b0d45f7f87522c 20-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Cleanup: removed unused messages constant and classes, merged AppearPrefView
with PrefView, moved main from Terminal.cpp to TermApp.cpp.


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


# 836233064701f02985ba0d21e3e269ac2e1c5cc1 19-Sep-2009 Jonas Sundström <jonas@kirilla.com>

Resource clean-up. Removing bitmap icons. Updating copyright dates. Removing dead code and redundant comments. Ending files in a newline.

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


# 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

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


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

Fixed mouse copy'n'paste support. We use a separate clipboard for mouse
selection which we update whenever the first mouse button is released.
This also enables copy'n'paste between Terminals.


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


# 4c9d4b02efb56c9444a83fb99e362681aa14c7c1 14-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Change the line history to a more compact format. We reserve
lines * (width + 8) bytes which is only a little more than a sixth of
what it was before. The effect on performance is relatively small. In
my tests I measured about 2% slowdown.
* Fixed artifacts after soft-wrapped lines.
* Re-enabled cursor blinking. I changed it so that the cursor is 1s
shown and 0.5s hidden (instead of 1s each). Tell me what you think.


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


# 234502808a662a88165c2fed4d3dcf382f59650d 09-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pulled base class BasicTerminalBuffer out of TerminalBuffer. It contains
pretty much all the meaty code. Left in TerminalBuffer is only stuff
that didn't quite fit, like the encoding and view notifications.


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


# 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


# bb4632f1ecfa5b77c87683e446ff7db70c636baf 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Stolen Ingo's Arguments class from Miniterminal and used it in place of
GPL'd code in TermApp (slightly modified, and bugfixed, even :P).
TermView now accepts an argument vector instead of a commandline. Same
thing for Shell.
Temporarily(?) removed some commandline options.
This also fixes bug #1396 (tested)


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


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

Got rid of TermBaseView


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


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

Renamed spawn.cpp/h to Shell.cpp/h and updated the other source files to
take this change into account


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


# 252fb08a83c8c8fe74f9789fb2b5ff35fbc33539 21-May-2007 Stephan Aßmus <superstippi@gmx.de>

* remove Terminal from the test environment
* small update to icon
* link with libgame.so (includes set_mouse_position())


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


# f8cc2a74e477715822698d206e888f50e7dfaea0 13-Apr-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed *Dlg to *Window, since the term "Dialog" is alien to the beos
api. Thanks to Vasilis Kaoutsis for the suggestion. I'll rename the
classes with the next commit.


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


# f95dbf89065f63a1ed5c4588d7c263a3b9489806 22-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implement Find in Terminal. This is almost identical to R5's Terminal, except that it doesn't look for regexps. Code tested by me. Thanks to jburton for helping me out and reviewing the patch.

This resolves bug #199.


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


# 8fee027ee3ed75805ec9e669f347872ec489706b 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Updated the resource app version information.


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


# cbf91a3008a7b06b89ee6b9a4dde9f4f0cb49ca5 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Terminal now also builds on R5/Dano.


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


# ba98d1b0cd312a0b9a9f1bf3d3dcf66c0ae32ae1 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Terminal is now also built for the libbe_test platform; removed explicit linking
against libroot.so.
* libtracker.so is now also built for that one, and also removed libroot.so linking.
* MiniTerminal is no longer build for the libbe_test platform.


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


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


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


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

Forgot to commit Jamfile before: removed AboutWindow.cpp.
Cleaned up ShellPrefView a little.


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


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

Moved Andrew's Terminal files into a subfolder - maybe this should be moved
to his developer branch. Maybe he wants to integrate the changes, too, whatever
he has done.
Removed unused files (muterm-2.3.zip, Jamfile - both still in history).


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


# 2146e4d643948242ff094034d2c0d11526973b67 23-Jun-2005 DarkWyrm <darkwyrm@gmail.com>

Removed Terminal from build and made Terminal2 the real app


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


# 9105df34ca7a2d4ab559fd9e62d34ba6ffcfe11d 05-Jul-2004 shatty <shatty@nowhere.fake>

add MYOB's MuTerm adaptation


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


# 3349a7ac9d9f194399f723ea7fd51ba49006969c 10-Aug-2003 shatty <shatty@nowhere.fake>

removed BTextView subview, it will not work for background text, complex cursor control, and will probably have problems with wide character alignment. also fixed long-standing scrollbar bug (stupid missing argument bug).


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


# 2deca29a775cf6921d47823d1b27a5c64393a9ec 10-Aug-2003 shatty <shatty@nowhere.fake>

new terminal behaves like r5 terminal, 1 terminal window per terminal application


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


# 375d0381f0a8039640fdd6d914454b33b07f853e 09-Aug-2003 shatty <shatty@nowhere.fake>

added terminal resources


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


# 0873b6e545fd2af8ed013ca86354def1f9233775 24-Apr-2003 shatty <shatty@nowhere.fake>

move towards smarter scrollers


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


# 4bf790524f8c3a2f5c6276483091dd8efe61f011 22-Apr-2003 shatty <shatty@nowhere.fake>

basic application model stolen from styled edit


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


# 5abaecfeb2d3b64eb9216398ea70fc7d9b19b341 21-Apr-2003 shatty <shatty@nowhere.fake>

MuTerminal is coming to OBOS


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