Bug 138191
| Summary: | Incompatibilities between konsole and real xterm [patch] | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Hans de Goede <hdegoede> | ||||||||||||
| Component: | kdebase | Assignee: | Than Ngo <than> | ||||||||||||
| Status: | CLOSED RAWHIDE | QA Contact: | |||||||||||||
| Severity: | medium | Docs Contact: | |||||||||||||
| Priority: | medium | ||||||||||||||
| Version: | rawhide | ||||||||||||||
| Target Milestone: | --- | ||||||||||||||
| Target Release: | --- | ||||||||||||||
| Hardware: | All | ||||||||||||||
| OS: | Linux | ||||||||||||||
| URL: | http://bugs.kde.org/show_bug.cgi?id=92749 | ||||||||||||||
| Whiteboard: | |||||||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||||||
| Doc Text: | Story Points: | --- | |||||||||||||
| Clone Of: | Environment: | ||||||||||||||
| Last Closed: | 2005-03-10 10:38:30 UTC | Type: | --- | ||||||||||||
| Regression: | --- | Mount Type: | --- | ||||||||||||
| Documentation: | --- | CRM: | |||||||||||||
| Verified Versions: | Category: | --- | |||||||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||
| Embargoed: | |||||||||||||||
| Attachments: |
|
||||||||||||||
|
Description
Hans de Goede
2004-11-05 14:52:24 UTC
Hi Hans, it's great if you write the fix for this problem. of course i'm interested in it ;-) It took some time before I had time to write the fix, and then writing
it also took some more time then I had estimated, but here it is (see
attachment).
The patch really consist of 3 parts:
1) modify keytrans.cpp & .h To learn the keytab modifier word AnyMod,
this because the real xterm can also report combinations of
modifiers for certain keys, so we either need 8 keytab lines per
key or a special keyword for this.
2) modify the default keytab to use the new keyword and fix all
bugs decribed above.
3) since backspace now sends ^H (like the real xterm) the tty erase
character needs to be changed from the default ^? to ^H, this
wasn't possible in the old konsole code, thus I added the
following:
-a setErase member to the TEPty class
-a getErase member to the TEmuVt102 class and to the TEmulator
superclass
-added code to session.cpp which ties these 2 together
That's all folks, please apply!
Created attachment 111423 [details]
Patch fixing tthe described inconcistencies
Created attachment 111812 [details]
Same patch but this time against 3.4.0rc1
Upstream requested me to redo the patch against 3.4.0rc1.
Warning not tested /compiled yet, but it should work fine :)
ping?
Great. It's now included in kdebase-3.4.0-0.rc1.5. Thanks for the patch. Crap, I've made the time today to actually compile and test my patch and there is a bug in it, sorry about this. This bug only shows up runtime, starting konsole from a terminal gives: [buildin](27,12):error: Unknown mode name. This is because shift is spelled without an initial captial in README.default.Keytab one time and thus also gets spelled without a capital in the generated default.keytab.h Unfortunatly since this is in a string this doesn't get caught by the compiler. Anyways I'm attaching a fixed patch for you. Created attachment 111862 [details]
improved (bugfree/tested) patch
Hmm,
Something still isn't ok, shift + cursorkeys left/right doesn't work as one
would expect. This patch is an improvement over the last one but I might need
todo a third revision.
I've pinned down the shift cursor left/right strangeness, these are caught by the konsole ui-widgets for changing tabs and thus never reach the terminal emulation object. For now please apply the fixed patch, I will probably be back with a cleaned up version, but no functional changes. I'm planning on removing all the shift cursor left/right bindings since these will never be used. Currently I'm trying to get contact with upstream and discuss this with them since they've added some specific emulation bindings for shift cursor left/right which is strange since these never reach the emulation object. See: http://bugs.kde.org/show_bug.cgi?id=92749 it's included in kdebase-3.4.0-0.rc1.5. thanks sorry, i mean kdebase-3.4.0-0.rc1.6 Created attachment 112337 [details]
cleaned up patch
After discussion with upstream all the bogus(unused) shifted cursorkey bindings
have been removed, resulting in a much cleaned up patch.
This is the last one (I promise) and as such has been submitted upstream for
inclusion, which will hopefully hapen soon.
it's commited in our CVS. The kdebase-3.4.0-3 will include this fix. thanks Created attachment 113354 [details] Patch fixing the described inconcistencies I know I promised the last version was final, but I'm afraid this needs one more itteration. The previous versions of this patch changed the character send by the backspace key from ASCII-DEL (\177) to CTRL-H (^H) to match the real xterm and terminfo as distributed both upstream and by Fedora/RH. However as resolution to bug 142659 it has been decided that backspace for terminals setting TERM to xterm should send ASCII-DEL. Patches for terminfo (bug 142659) and xterm (bug 128138) doing this are pending. This really really _really_ last itteration of this patch thus removes the part which changes backspace from ASCII-DEL to CTRL-H . Please apply. It's now included in kdebase-3.4.0-6. Many thanks for your patch file |