Looks like switching to declare "xterm-256color" terminal emulation was
made a bit early: there are lot of servers that still do not know about
this terminal. As was discussed in #9636 the only acceptable way is to
switch back to "xterm" and adjust corresponding entry in our local
termcap database to support 256 colors. So this changeset:
* Declare emulated terminal as "xterm";
* Change the colors and color pairs of "xterm" termcap entry to support
256 colors;
Workarounds the #9636. Should be upgraded to "xterm-256color" some time
in the future.
* Encoding cell of the StyledEdit StatusView is visible now only in case
the currently opened file encoding is not equal to default UTF-8 one;
* The Encodings menu that was opened by click on this cell is removed;
* Cmd-Opt-PgDn/PgUp shortcuts are added for quick iteration through the
list of encodings.
This case happens when you are scrolled to the end of the list and
you do an action that causes the view to shrink but not enough for
the scroll arrows to be detached such as remove a team or unexpand
an application. Before it would keep you where you were showing an
extra grey area, now it scrolls you back to the new scroll limit.
... then resize it and move it to the desired size and location on update.
* Create an fBarApp pointer and use it, this is easier than having to keep casting to TBarApp.
Actually, the Deskbar menu was sized correctly but the separator item was not,
so, I've replaced the separator item with a new TSeparatorItem class that is derived
from BSeparatorItem but does it's own drawing. This neatly avoids the bug since
the TSeperatorItem doesn't need to be resized explicitly.
Also, there were some instances of AddSeperatorItem (with an e) that I renamed to
AddSeparatorItem (with an a). I also eliminated includes in the header which means
I added them in some cpp files where they were needed.
- Extend CppLanguage::ParseTypeExpression() to also grok array
specifiers. This theoretically lets one now typecast to array types
as well as pointer types, though things don't entirely work as expected
yet.
- Added GetSystemInfo() to DebuggerInterface. Use that from
DebugReportGenerator instead of calling get_system_info()/utsname()
directly since otherwise we'd get the information for the wrong system
in the eventual case when we have remote debugging support.
In the Terminal data model every full width character occupies two cells
in the data buffers. The second cell of such characters is not drawn and
used mainly to differentiate between full width and half width
characters.
Proposed fix zeroes the attributes of the second cell in the
HistoryBuffer::GetTerminalLineAt() that prevents the potential endless
loops in the BasicTerminalBuffer::_ResizeRedraw(). Those loops were
result of the random attributes in full width character's second cells.
I fear that perhaps the fBarView variable may be accessed before it has a
chance to be set in AttachedToWindow(). By setting it in the constructor there
is no chance of this. Might fix #9656
* Re-enable full-width characters detection and display;
* Fix cursor drawing on full-width characters;
* Fix debug dump for multi-byte characters;
* Fix file permissions for debug capture log.
Fixes #6717. Also may improve behaviour related to #6227.
Loop backwards if possible, if not, set a variable and use that instead.
There were a couple of instances where the loop style got changed from
for (int32 i = CountItems(); --i >= 0;)
to
for (int32 i = CountItems() - 1; i >= 0; i--) {
but should be functionally equivalent.