History log of /haiku/src/apps/terminal/TermApp.cpp
Revision Date Author Comments
# 4043ac18 08-Jul-2022 Joachim Mairböck <j.mairboeck@gmail.com>

Terminal: add missing newline to --help output

Change-Id: I2c8446c4049d723d0985858313972e44ac42bee1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5440
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 9d6f3d05 14-Oct-2020 Murai Takashi <tmurai01@gmail.com>

terminal: Fix -Wformat-security

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


# 476d0ad3 09-Jan-2020 Zotyamester <szatmary.zoltan1222@gmail.com>

Terminal: Minor fixes

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


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


# dace9ead 15-Jan-2019 lazybullfrog <jjbailey@gmail.com>

Terminal: added argv for initial working directory

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


# eb718e31 16-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Handle SIGCHLD in a dedicated thread

Block SIGCHLD in all threads and spawn a dedicated thread that handles
the signal in a loop (via sigwait()). This avoids the issue that the
SIGCHLD could be handled in any of our threads and thus possibly
interrupt a syscall.

Fixes #10941.


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


# cfd9c96d 04-Dec-2012 John Scipione <jscipione@gmail.com>

Style fix: compare to 0 in strcmp() explicitly.


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 24df6592 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


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


# fdd2b7eb 27-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Removal of the About window.

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


# 0961433d 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Patch from diver (bug #7329) with cleanup by myself: remove excessive localization


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


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

Set B_ESCAPE as shortcut for all BAlerts. Fixes #6850 and #6858.


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


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

MessageReceived(): More descriptive variable name.


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


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

Override BApplication::QuitRequested(), so that when the system is shutting
down, we can skip the checks for running processes. At least I found the
alerts seriously annoying in this case.


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


# e2fc6dba 19-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Remove useless debug output.


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


# e20a6029 18-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Use Shift instead of Option as modifier to load workspace settings, as it conflicts with option+N used to open a new
terminal
* Also ensure that the terminal end up on the current workspace if there is a problem with the settings or the key isn't
pressed.


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


# d18fc399 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by rossi, but I ended u rewriting half of it :
* Save terminal windows positions
* Also save their size and workspace, but these aren't used (size is overriden by the menu setting and workspace is annoying)


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


# 6709e6bc 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Refactor default shell handling so it is done in a single place for a new windows and a new tab.
Use "/bin/sh -l" as the default command, and always pass -l ('login shell') to the user selected shell.


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


# 4eb0cbb0 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# 7974d3dc 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


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


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

Removed the shell invocation from Arguments, moved it into TermApp.
Get the user shell with getpwuid(), since this should be the correct way
to do it (and mmu_man wants it like this).
Note that when opening a new terminal tab, this is ignored, and a fixed
invocation is used (in the Shell class)


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


# b79c4995 27-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Reverted the preference saving part of r34165 (at least for now).
Moved the AboutRequested code to a static TermView method, called from
everywhere (now TermApp knows about TermView, but no one is perfect).
Reordered and removed includes.


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


# 0d77a112 04-Oct-2009 Ryan Leavengood <leavengood@gmail.com>

A patch from Caitlin Shaw (aka rogueeve) to fix #4715, some Terminal
improvements:

* fixed text for "Use Text" radio button in Find dialog being cut off
* more user friendly error messages for Find dialog:
"no search string" becomes "No search string was entered.", or "Nothing is
selected." as appropriate.
* Preferences dialog opens unacceptably slow when a larger number of fonts are
installed due to AppearPrefView's "IsFontUsuable" routine. But was able to
cut opening time by about half with a minor optimization to the loop.

* Fixed an ugly word-wrap of Takashi Murai's name in About dialog


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


# f7d8d9b8 15-Aug-2009 Philippe Saint-Pierre <stpere@gmail.com>

_SanitizeIDs(): An off by one error was causing a bug in the terminal window numbering.

Ticket #3372.


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


# a41b1bcb 13-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* The shortcuts of the encodings shadowed other shortcuts, like Command-G to
switch Terminals. I've not only removed that shortcut, though, I disabled
all encoding shortcuts, as I frankly don't see any use for them beyond
confusing users (by accidently hitting one of the 134 shortcuts).
* Minor cleanup.


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


# 6a63492f 14-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* When switching Terminals via Command-G, we now also take the workspace
information into account, ie. we now behave like the Terminal on BeOS, and only
allow to switch between the Terminal windows of one workspace.


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


# 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


# 9d666b87 11-Jan-2008 François Revol <revol@free.fr>

Fix build under BeOS.


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


# dbc03773 28-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a SIGCHLD handler, so that the terminal will notice when one of
its shells has been terminated. Usually the thread reading from the tty
master would notice when all slaves have been closed, but they won't be
closed when the shell started a background job that's still living.

Unfortunately there are race conditions in the terminal that can lead to
deadlock when a session is closed. The service threads usually happily
lock the window, while the (locked) window would wait for the service
threads to quit.



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


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

Removed leak


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


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

Fixed the build under BeOS/Dano:
* setenv() actually exists in Dano.
* On R5, it now uses sprintf() - the previous version would not compile.
* Cleaned some weird code in TermBuffer.cpp to set the "buf" variable to the
end of the string - it also no longer uses the index() BSD extension
(same as strchr()).


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


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

Removed weird code in TermWindow::WindowActivated. Added basic
Archive(), Instantiate(), and unarchiving constructor.


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


# 702e4be8 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved all TermView initializing code into TermView itself. Before you
couldn't just rely on its constructor to fully initialize the object,
since the code was scattered around, mostly into TermWindow. Added a
commented out TermWindow constructor which only creates and adds a
TermView object to the view hierarchy, which now works.
Removed weird TermWindowActivate method, use WindowActivated
instead. TermApp can now keep a pointer to a BWindow instead of
TermWindow, since it doesn't do anything special with it.
TermView::SetTermFont() now can filter the font attributes (it uses
B_FIXED_SPACING, I'm not sure it's needed but it doesn't hurt). Usual
cleanups.


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


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

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


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


# 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


# 2b0f12f7 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved spawning the shell from TermApp to TermWindow


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


# 85f69514 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More style changes, replaced sprintf use with snprintf. Removed unused
variables and code.


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


# e1628af5 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more style cleanups, removed unused global


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


# 1bf81a0b 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved gTermPref to TermApp.cpp. Moved deleting of gTermPref to the
TermApp destructor, so it's symmetric to its creation.


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


# b741fc89 07-May-2007 François Revol <revol@free.fr>

Fix building on R5 (dano at least).


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


# d1c710a7 30-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented the Terminal-ID search using a BClipboard and the new atomicity
feature of BClipboard::Commit().
* The file based version is now only used when the Terminal is built for BeOS.


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


# 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


# 3d8771ee 07-Dec-2006 Jérôme Duval <korli@users.berlios.de>

commit for Stefano


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


# b1904124 07-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

got rid of the tty_name global


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


# 4c25eb4d 26-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* delete -> delete[]


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


# 85c0a1f7 30-Jun-2006 Jérôme Duval <korli@users.berlios.de>

always init numbers[i], suggested by Stippi, thanks!


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


# bc96eab5 29-Jun-2006 Jérôme Duval <korli@users.berlios.de>

a new terminal is now launched in TermWindow
we now search for a Terminal index : we use scripting to ask every Terminal its window title, and from this computes a free index
this fixes bug #699


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


# 3860abe3 29-May-2006 François Revol <revol@free.fr>

(unitialized) make sure Terminal doesn't start fullscreen (what, you didn't like it ?)


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


# 265fea4a 25-May-2006 François Revol <revol@free.fr>

Add a --fullscreen option to start fullscreened.


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


# 30da2fcb 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the terminal a bit more robust against broken settings.


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


# 0d5dea62 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

* Setting the window title via "-t" now works.
* Improved error message in case the initial shell couldn't be executed.
* Disabled setting the colors via arguments, mostly because it just did quit
the app in case there were any arguments and no /etc/rgb.txt file. This
allows Terminal to be used by the debug_server instead of MiniTerminal.


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


# 69554e12 13-Aug-2005 DarkWyrm <darkwyrm@gmail.com>

fixed launching of new terminal windows


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


# 8002431b 12-Aug-2005 DarkWyrm <darkwyrm@gmail.com>

Style fixes to TermWindow.cpp
Removed trailing spaces after text generated by file drops
Added a few TODOs


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


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

Our Terminal is already a bit older than 2005...


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


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

Removed the ugly about window, and replaced it with a common BAlert.
Moved the alert to TermApp, too - TermWindow now only forwards the B_ABOUT_REQUESTED message.


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


# eb718e31d22dded84f10f218d3a380ef5707dee1 16-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Terminal: Handle SIGCHLD in a dedicated thread

Block SIGCHLD in all threads and spawn a dedicated thread that handles
the signal in a loop (via sigwait()). This avoids the issue that the
SIGCHLD could be handled in any of our threads and thus possibly
interrupt a syscall.

Fixes #10941.


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


# cfd9c96db5b111667bc085b854aebcdd346c8f37 04-Dec-2012 John Scipione <jscipione@gmail.com>

Style fix: compare to 0 in strcmp() explicitly.


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 24df65921befcd0ad0c5c7866118f922da61cb96 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


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


# fdd2b7ebb1697c86a1adaac3ac9eecc661d0509b 27-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Removal of the About window.

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


# 0961433d2a75a252e3caa8f63a0be7ac488b0c96 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Patch from diver (bug #7329) with cleanup by myself: remove excessive localization


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


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

Set B_ESCAPE as shortcut for all BAlerts. Fixes #6850 and #6858.


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


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

MessageReceived(): More descriptive variable name.


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


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

Override BApplication::QuitRequested(), so that when the system is shutting
down, we can skip the checks for running processes. At least I found the
alerts seriously annoying in this case.


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


# e2fc6dba84400789953bfb403e22fa8e40d7990d 19-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Remove useless debug output.


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


# e20a602919634ca6e24eed43cd5bceca67d8a039 18-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Use Shift instead of Option as modifier to load workspace settings, as it conflicts with option+N used to open a new
terminal
* Also ensure that the terminal end up on the current workspace if there is a problem with the settings or the key isn't
pressed.


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


# d18fc3994c2e4686a400c83d8fe97d470f305f84 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by rossi, but I ended u rewriting half of it :
* Save terminal windows positions
* Also save their size and workspace, but these aren't used (size is overriden by the menu setting and workspace is annoying)


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


# 6709e6bcb82e28484ce380f12857e20f33efedca 17-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Refactor default shell handling so it is done in a single place for a new windows and a new tab.
Use "/bin/sh -l" as the default command, and always pass -l ('login shell') to the user selected shell.


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


# 4eb0cbb044cf538f18c0d252934a5bcaa33bfd34 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# 7974d3dcf39ce78e5885b481eee12e561ad6e096 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


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


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

Removed the shell invocation from Arguments, moved it into TermApp.
Get the user shell with getpwuid(), since this should be the correct way
to do it (and mmu_man wants it like this).
Note that when opening a new terminal tab, this is ignored, and a fixed
invocation is used (in the Shell class)


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


# b79c499571a5116074f1ee887d2b685eb7e11e20 27-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Reverted the preference saving part of r34165 (at least for now).
Moved the AboutRequested code to a static TermView method, called from
everywhere (now TermApp knows about TermView, but no one is perfect).
Reordered and removed includes.


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


# 0d77a112bcd001be506571d42c233dfe8da079c3 04-Oct-2009 Ryan Leavengood <leavengood@gmail.com>

A patch from Caitlin Shaw (aka rogueeve) to fix #4715, some Terminal
improvements:

* fixed text for "Use Text" radio button in Find dialog being cut off
* more user friendly error messages for Find dialog:
"no search string" becomes "No search string was entered.", or "Nothing is
selected." as appropriate.
* Preferences dialog opens unacceptably slow when a larger number of fonts are
installed due to AppearPrefView's "IsFontUsuable" routine. But was able to
cut opening time by about half with a minor optimization to the loop.

* Fixed an ugly word-wrap of Takashi Murai's name in About dialog


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


# f7d8d9b87a76f4bae1d9436959e961eb48f8d1aa 15-Aug-2009 Philippe Saint-Pierre <stpere@gmail.com>

_SanitizeIDs(): An off by one error was causing a bug in the terminal window numbering.

Ticket #3372.


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


# a41b1bcb3a7ac3a117a97351df226c787ae87068 13-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* The shortcuts of the encodings shadowed other shortcuts, like Command-G to
switch Terminals. I've not only removed that shortcut, though, I disabled
all encoding shortcuts, as I frankly don't see any use for them beyond
confusing users (by accidently hitting one of the 134 shortcuts).
* Minor cleanup.


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


# 6a63492f6c671076f64727c118d188f29e16969a 14-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* When switching Terminals via Command-G, we now also take the workspace
information into account, ie. we now behave like the Terminal on BeOS, and only
allow to switch between the Terminal windows of one workspace.


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


# 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


# 9d666b87079423031b238d48a2a89fd31558c245 11-Jan-2008 François Revol <revol@free.fr>

Fix build under BeOS.


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


# dbc03773ef3b00c0daf4f4cdd8871f0a4072d094 28-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a SIGCHLD handler, so that the terminal will notice when one of
its shells has been terminated. Usually the thread reading from the tty
master would notice when all slaves have been closed, but they won't be
closed when the shell started a background job that's still living.

Unfortunately there are race conditions in the terminal that can lead to
deadlock when a session is closed. The service threads usually happily
lock the window, while the (locked) window would wait for the service
threads to quit.



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


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

Removed leak


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


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

Fixed the build under BeOS/Dano:
* setenv() actually exists in Dano.
* On R5, it now uses sprintf() - the previous version would not compile.
* Cleaned some weird code in TermBuffer.cpp to set the "buf" variable to the
end of the string - it also no longer uses the index() BSD extension
(same as strchr()).


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


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

Removed weird code in TermWindow::WindowActivated. Added basic
Archive(), Instantiate(), and unarchiving constructor.


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


# 702e4be807966ff71d1c6d71b46f93d3e83314c9 25-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved all TermView initializing code into TermView itself. Before you
couldn't just rely on its constructor to fully initialize the object,
since the code was scattered around, mostly into TermWindow. Added a
commented out TermWindow constructor which only creates and adds a
TermView object to the view hierarchy, which now works.
Removed weird TermWindowActivate method, use WindowActivated
instead. TermApp can now keep a pointer to a BWindow instead of
TermWindow, since it doesn't do anything special with it.
TermView::SetTermFont() now can filter the font attributes (it uses
B_FIXED_SPACING, I'm not sure it's needed but it doesn't hurt). Usual
cleanups.


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


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

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


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


# 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


# 2b0f12f79e7ba357cc72fc1cf6ca7837599bafbf 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved spawning the shell from TermApp to TermWindow


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


# 85f69514f485856decf860a1838f34035ab8eef8 13-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More style changes, replaced sprintf use with snprintf. Removed unused
variables and code.


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


# e1628af583835006011b4a45eb98526d64290619 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more style cleanups, removed unused global


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


# 1bf81a0b8d9fce71d0bf2815d324a7d15d639d41 02-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved gTermPref to TermApp.cpp. Moved deleting of gTermPref to the
TermApp destructor, so it's symmetric to its creation.


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


# b741fc8986a6c04a40f3913524cfe5fb1b5c4f69 07-May-2007 François Revol <revol@free.fr>

Fix building on R5 (dano at least).


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


# d1c710a7d8ff9e1f0ed38df53f909e96e069a931 30-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented the Terminal-ID search using a BClipboard and the new atomicity
feature of BClipboard::Commit().
* The file based version is now only used when the Terminal is built for BeOS.


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


# 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


# 3d8771eeef4de8c264ab79fcba18fd55f1b0e3b2 07-Dec-2006 Jérôme Duval <korli@users.berlios.de>

commit for Stefano


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


# b19041249debf4198f24c60bb78a86e4ad35f47e 07-Dec-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

got rid of the tty_name global


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


# 4c25eb4d042757faed6bc4925a84cf21bee2a434 26-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* delete -> delete[]


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


# 85c0a1f71823a4b859dff16a680127bd0fdb303d 30-Jun-2006 Jérôme Duval <korli@users.berlios.de>

always init numbers[i], suggested by Stippi, thanks!


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


# bc96eab5bdec4f9aba2efb63ce2b31201daedfc2 29-Jun-2006 Jérôme Duval <korli@users.berlios.de>

a new terminal is now launched in TermWindow
we now search for a Terminal index : we use scripting to ask every Terminal its window title, and from this computes a free index
this fixes bug #699


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


# 3860abe353c938c1f386bc3bb81d564b0c576d8a 29-May-2006 François Revol <revol@free.fr>

(unitialized) make sure Terminal doesn't start fullscreen (what, you didn't like it ?)


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


# 265fea4ad42e39268545bbc95d7765f1770c5c6f 25-May-2006 François Revol <revol@free.fr>

Add a --fullscreen option to start fullscreened.


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


# 30da2fcb94e79bc8256c8d972502b8cd24c1c820 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the terminal a bit more robust against broken settings.


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


# 0d5dea62de02f705791d0e3ca15f9a50e53ffea3 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

* Setting the window title via "-t" now works.
* Improved error message in case the initial shell couldn't be executed.
* Disabled setting the colors via arguments, mostly because it just did quit
the app in case there were any arguments and no /etc/rgb.txt file. This
allows Terminal to be used by the debug_server instead of MiniTerminal.


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


# 69554e1221e133cacad915bf2d2c6bafe910938d 13-Aug-2005 DarkWyrm <darkwyrm@gmail.com>

fixed launching of new terminal windows


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


# 8002431bb4e96b87005cc385afe80d7b89e19223 12-Aug-2005 DarkWyrm <darkwyrm@gmail.com>

Style fixes to TermWindow.cpp
Removed trailing spaces after text generated by file drops
Added a few TODOs


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


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

Our Terminal is already a bit older than 2005...


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


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

Removed the ugly about window, and replaced it with a common BAlert.
Moved the alert to TermApp, too - TermWindow now only forwards the B_ABOUT_REQUESTED message.


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