Commit Graph

106 Commits

Author SHA1 Message Date
Martin T. H. Sandsmark
1c13e4841d Handle surrogate utf16 characters
For our own sanity we (falsely) assume that all surrogate characters are
double width, otherwise we have to go back and reflow the line.

This makes it work better with emojis in vim at least.

REVIEW: 129841
2017-01-22 20:09:38 +01:00
Martin T. H. Sandsmark
80b9e0775e Fix crash with combining characters after several cursorRight() calls
cursorRight() does not resize the _screenLines vector, leading to an
assert in QVector when trying to look up the _cuX which is bigger than
the amount of characters in the current line.

BUG: 372530
2016-11-20 14:04:48 +01:00
Kurt Hindenburg
84b43dfb21 Add rendition flags SGRs 2, 8, 9, 53
Adds faint intensity, strikeout, conceal and overline support.

echo -e 'D\e[2mD\e[9mD\e[53mD\e[8mD'

Thanks to Antonio Russo antonio e russo gmail com for patch

REVIEW: 128405
BUG: 362171
2016-07-16 12:34:24 -04:00
Martin T. H. Sandsmark
b8e96bcdca Preserve current line when resetting
Reset was always called with clearScreen = true, so no point in having
that variable. We can probably also remove Screen::clear() and
Screen::home(), they're not used anymore, and weren't really useful
before this either.

We still preserve the scrollback history when resetting, which is not
what other terminal emulators do (http://stackoverflow.com/a/5367075),
but we do have a separate action for it, so I think it is a nice extra
feature to preserve it.

REVIEW: 128389
2016-07-08 01:15:40 +02:00
Martin T. H. Sandsmark
437440978b Fix rendering of decomposed Hangul
When looking backwards to combine into a character, it didn't take into
account characters with two column width. It also assumed that all
characters that needed to be combined were in the Mn unicode character
category, while the Hangul starting consonants are in the Lo category.
2016-07-06 23:00:07 +02:00
Kurt Hindenburg
abb83e8ef0 Add support for copying HTML formatted text from terminal
Currently, only text is supported - this add HTML

Thanks to Anonymous Koavohv koavohv gmail com

REVIEW: 119914
2014-10-04 11:57:54 -04:00
Kurt Hindenburg
427de88cc1 Fix wrong rendering at the end of line when drawing colored whitespaces
Previous code just deleted the end characters; new code puts in spaces
with current attributes at the end of the line.

Thanks to Igor Kostromin elwood.su@gmail.com for bug, research + patch

See bko for test code + more info
BUG: 330214
FIXED-IN: 2.13
2014-02-09 11:02:01 -05:00
Kurt Hindenburg
7937cb9793 Add boundary check in copyLineToStream to try to prevent crashes
A lot of crashes in copyLineToStream _screenLines[screenLine]; this
likely needs to be a container, for now add an extra variable to watch
the size.
I still can't reproduce it though a lot of people can doing various
things.
319888, 313711, 312006, 306939, 304837
2013-05-17 09:12:29 -04:00
Kurt Hindenburg
17de056907 English fixes to comments only 2013-03-17 12:23:05 -04:00
Kurt Hindenburg
7a2a5beb00 Correct spelling errors/word usage
All these are in the comments - no code changes
2013-01-09 22:07:11 -05:00
Kurt Hindenburg
983efbc5a8 Add braces around if/else for readability 2012-12-19 23:41:09 -05:00
Kurt Hindenburg
ca9dd11bf5 Allow option to trim spaces at end of line
In the ongoing issue with spaces at the end of lines, this allows for
an option to trim the spaces.  By default, it is disabled so only
people who need this will be affected.

Many thanks to David Smid <david@smidovi.eu>

CCBUG: 188528
2012-09-09 19:10:41 -04:00
Jekyll Wu
4289c5782a Just a few renames 2012-05-23 18:44:31 +08:00
Kurt Hindenburg
bee9aa8f78 minor style fixes - remove empty lines start/end code blocks 2012-05-13 10:08:05 -04:00
Kurt Hindenburg
5b083640ce whitespace and style fixes
Use 'git diff -w --ignore-all-space' to see non-whitespace changes
2012-04-05 11:08:53 -04:00
Frederik Gladhorn
7e0ba7079a Accessible interface for TerminalDisplay
This allows screen readers to read the output
in the konsole window.
2012-03-29 20:00:35 +02:00
Kurt Hindenburg
e0862c603a Style fixes - separte commands - remove 2 ; - align { elses 2012-03-18 15:57:48 -04:00
Kurt Hindenburg
519e2614d6 Style fixes - remove spaces before ; and add spaces in for loops 2012-03-18 15:11:06 -04:00
Jekyll Wu
25b8b5353c Trivial style change: remove extra blank lines 2012-03-17 19:53:21 +08:00
Jekyll Wu
6dd15d9061 split class ExtenededCharTable into its own file 2012-03-06 04:44:32 +08:00
Jekyll Wu
695c680271 Less unneeded #include 2012-03-05 06:16:54 +08:00
Jekyll Wu
e977062afd Avoid using magic number 2012-03-05 00:37:20 +08:00
Jekyll Wu
01f8d2ce7f Rename member variables 2012-03-05 00:34:48 +08:00
Jekyll Wu
4192031fd5 More constness for better understanding the code 2012-03-04 21:19:33 +08:00
Jekyll Wu
26331fc17c assert ==> Q_ASSERT 2012-03-01 19:30:56 +08:00
Jekyll Wu
f42fd4721b Clean up unneeded #includes 2012-02-20 19:41:38 +08:00
Kurt Hindenburg
30a4fa669e Apply astyle-kdelibs
Over the years, the coding style is all over the place.

Use 'git diff -w --ignore-all-space' to see non-whitespace changes.
2011-12-24 11:13:03 -05:00
Kurt Hindenburg
bc087ae51b Remove unused KDebug includes 2011-12-18 00:01:32 -05:00
Jekyll Wu
72a1adc631 Avoid extra trailing whitespace when copying text
A new 'isRealCharacter' flag is added into the 'Character' class
to distinguish real characters and charaters used as place holders.

The code is a bit ugly now. Should improve it later when the idea and
implementation are proven to be feasible and cause no regression.

CCBUG: 188528
2011-11-26 10:59:08 +08:00
Kurt Hindenburg
0905a301e6 Prevent crashing when dumping binary files to terminal.
"cat"ing binary files often crashes Konsole.  This patch checks the
indicies.
Note that there are tons of 'undecodable sequences' that also print
out.  These likely should not be displayed unless debugging.
BUG: 184964
FIXED-IN: 4.8
2011-11-13 16:21:49 -05:00
Jekyll Wu
125e2c7bd2 Declare pointer and reference in a consistent way
Most code use the "const QString& text" form, instead of the "const
QString &text" form. So change the minority to be consistent with
the majority.
2011-11-06 06:13:28 +08:00
Jekyll Wu
50a07d79da Remove dead method Screen::compose(String) 2011-11-03 06:53:49 +08:00
Jekyll Wu
e825a8e0b6 Prefer forward declaration when it is enough 2011-11-01 13:41:54 +08:00
Jekyll Wu
c84c55d52b Remove inapproriate TODO and useless comment 2011-10-19 04:38:36 +08:00
Jekyll Wu
c001df918c Minor change on constructor 2011-10-19 04:38:36 +08:00
Jekyll Wu
d3e6c479ff Remove dead #define 2011-10-19 04:38:36 +08:00
Albert Astals Cid
005e1cfb87 Fix crash handling combining characters
If you get a combining character as first "character" of a new line
what we used to go was go to the previous line and combine with the character of the end
This assumption is wrong as sometimes a combining character may appear "on its own" without nothing to combine with

If someone has time it is worth investigating what is the correct behaviour in those cases as it seems gnome-terminal shows the character even if it has nothing to combine with
2011-10-16 18:51:38 +02:00
Jekyll Wu
e497e0ac32 Use Screen::defaultChar instead of Character() for readability 2011-10-15 16:23:52 +08:00
Jekyll Wu
7a6f2aff0c Reuse Screen::defaultChar to reduce duplicated code 2011-10-14 14:41:11 +08:00
Jekyll Wu
37a8f1e75c Less #defines, more constants 2011-10-13 20:08:07 +08:00
Jekyll Wu
272ac9850e Include KDE headers consistently in the from of "#include <KSomething>" .
However, some KDE headers are still only available in the form of
"#include <ksomething.h>"

krun.h              ==>     KRun
kicon.h             ==>     KIcon
kdebug.h            ==>     KDebug
kshell.h            ==>     KShell
kdialog.h           ==>     KDialog
kconfig.h           ==>     KConfig
klocale.h           ==>     KLocale
kglobal.h           ==>     KGlobal
kcolorutils.h       ==>     KColorUtils
kconfiggroup.h      ==>     KConfigGroup
kdesktopfile.h      ==>     KDesktopFile
kcolorscheme.h      ==>     KColorScheme
kstandarddirs.h     ==>     KStandardDirs
ktemporaryfile.h    ==>     KTemporaryFile
klocalizedstring.h  ==>     KLocalizedString
2011-09-23 05:04:46 +08:00
Jekyll Wu
ca3ef60d6d Fix the problem of possibly losing the last line after resizing window.
This is a simple one-line patch, so it can be reverted easily if
unfortunately needed.

BUG:192221
FIXED-IN:4.8
REVIEW:102177
2011-09-22 01:35:49 +08:00
Jaime Torres
bfc17f4a94 No need for a variable to store a value, use it and forget it
To compare the result of a method only with a calculated value, there
is no need for a local variable. Let the compiler create itself the
value in the best place, stack or registry.
2011-09-18 11:29:30 +02:00
Jekyll Wu
771b4b2228 ANSI escape code "\e[1;93m" should generate intensive color.
The current behavior is bold(1) will toggle the intensity of an
intensive color(93), so the result is a normal color. This is
counter-intuitive. Xterm, rxvt, and all vte-base emulators generate
intensive color in this case.

BUG: 274603
FIXED-IN: 4.8
REVIEW: 102554
2011-09-14 06:34:50 +08:00
Jekyll Wu
4dd68c4c5b Do not append extra space when copying wrapped lines.
This is a fix for the regression caused by commit 4f8da8.

BUG: 136730
2011-08-15 06:02:57 +08:00
Kurt Hindenburg
4f8da80fec Use SPACE as delimiter when joining multiple lines.
Currently, when users use ctrl+mouse to select and copy multiple lines,
those lines are joined into single line in a seamless way.  LINEBREAK is
simply removed, thus the first character of second line will be
positioned right after the last character of the first line.  This patch
replaces the LINEBREAK with a SPACE.

Thanks to Jekyll Wu (adaptee@gmail.com) for patch and research.
BUG: 136730
FIXED-IN: 4.8
2011-07-24 16:27:24 -04:00
Albert Astals Cid
d4953bff85 There can be more than one combining character per character
So do not assert when that happens. More info at bug 276720
2011-07-03 15:15:54 +01:00
Albert Astals Cid
c335324f31 Support Unicode decomposed characters
BUGS: 96536
2011-06-26 16:32:30 +01:00
Albert Astals Cid
81e23b6621 Make Character constructor explicit 2011-06-26 16:10:44 +01:00
Kurt Hindenburg
6b2440e2c2 comment out kDebugs - change some to kWarnings
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=1148447
2010-07-10 17:22:28 +00:00