Summary: | [PATCH] Crash in vi input mode: new document, "o" "Esc" "O" "Esc" "." | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-ktexteditor | Reporter: | tuxtoriel |
Component: | general | Assignee: | KWrite Developers <kwrite-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | egorov, kdedevel, mail, martin+kde, mikisabate |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.33.0 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/ktexteditor/ad51cece443bc6bb643fa4ca94293a13d3c2f852 | Version Fixed In: | 5.37 |
Sentry Crash Report: |
Description
tuxtoriel
2017-03-20 18:52:59 UTC
It is KTextEditor issue, Kate crashes for me too. Exact keystrokes I press on a new document: "o" "Esc" "O" "Esc" "." ---- Application: Kate (kate), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". [Current thread is 1 (Thread 0x7f74430ef180 (LWP 3481))] Thread 3 (Thread 0x7f7435c9f700 (LWP 3483)): #0 0x00007f744fa3dbed in read () at /lib64/libc.so.6 #1 0x00007f7448e6a4d0 in g_wakeup_acknowledge () at /lib64/libglib-2.0.so.0 #2 0x00007f7448e25c83 in g_main_context_check () at /lib64/libglib-2.0.so.0 #3 0x00007f7448e26104 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #4 0x00007f7448e2627c in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #5 0x00007f74508486eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #6 0x00007f74507f968a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #7 0x00007f74506565e3 in QThread::exec() () at /lib64/libQt5Core.so.5 #8 0x00007f7450a53739 in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5 #9 0x00007f745065a9ca in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5 #10 0x00007f744de6e6ca in start_thread () at /lib64/libpthread.so.0 #11 0x00007f744fa4df7f in clone () at /lib64/libc.so.6 Thread 2 (Thread 0x7f743e5c1700 (LWP 3482)): #0 0x00007f744fa4201d in poll () at /lib64/libc.so.6 #1 0x00007f744cb9bd10 in _xcb_conn_wait () at /lib64/libxcb.so.1 #2 0x00007f744cb9daa9 in xcb_wait_for_event () at /lib64/libxcb.so.1 #3 0x00007f7442e62d69 in QXcbEventReader::run() () at /lib64/libQt5XcbQpa.so.5 #4 0x00007f745065a9ca in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5 #5 0x00007f744de6e6ca in start_thread () at /lib64/libpthread.so.0 #6 0x00007f744fa4df7f in clone () at /lib64/libc.so.6 Thread 1 (Thread 0x7f74430ef180 (LWP 3481)): [KCrash Handler] #6 0x00007f7451154ee0 in QTextLayout::lineCount() const () at /lib64/libQt5Gui.so.5 #7 0x00007f7454f353d9 in KateLineLayout::viewLineCount() const (this=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/render/katelinelayout.cpp:178 #8 0x00007f7454f29716 in KateRenderer::paintTextLineBackground(QPainter&, QExplicitlySharedDataPointer<KateLineLayout>, int, int, int) (this=this@entry=0x55b2b79de6c0, paint=..., layout=..., currentViewLine=-1, xStart=xStart@entry=0, xEnd=xEnd@entry=1164) at /usr/src/debug/ktexteditor-5.33.0/src/render/katerenderer.cpp:224 #9 0x00007f7454f2dbd7 in KateRenderer::paintTextLineBackground(QPainter&, QExplicitlySharedDataPointer<KateLineLayout>, int, int, int) (xEnd=1164, xStart=0, currentViewLine=<optimized out>, layout=..., paint=..., this=0x55b2b79de6c0) at /usr/src/debug/ktexteditor-5.33.0/src/render/katerenderer.cpp:181 #10 0x00007f7454f2dbd7 in KateRenderer::paintTextLine(QPainter&, QExplicitlySharedDataPointer<KateLineLayout>, int, int, KTextEditor::Cursor const*, QFlags<KateRenderer::PaintTextLineFlag>) (this=0x55b2b79de6c0, paint=..., range=..., xStart=xStart@entry=0, xEnd=xEnd@entry=1164, cursor=cursor@entry=0x7ffef4f90730, flags=...) at /usr/src/debug/ktexteditor-5.33.0/src/render/katerenderer.cpp:559 #11 0x00007f7454f79299 in KateViewInternal::paintEvent(QPaintEvent*) (this=0x55b2b7c341b0, e=0x7ffef4f90a80) at /usr/src/debug/ktexteditor-5.33.0/src/view/kateviewinternal.cpp:2996 #12 0x00007f74515dd7c0 in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #13 0x00007f7451595ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #14 0x00007f745159d671 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #15 0x00007f74507fa6fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #16 0x00007f74515d647a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib64/libQt5Widgets.so.5 #17 0x00007f74515d6af3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #18 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #19 0x00007f74515d771a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #20 0x00007f74515d771a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #21 0x00007f74515d771a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #22 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #23 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #24 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #25 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #26 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #27 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #28 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #29 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #30 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #31 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #32 0x00007f74515d771a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #33 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #34 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #35 0x00007f74515d771a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #36 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #37 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #38 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #39 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #40 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #41 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #42 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #43 0x00007f74515d782d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #44 0x00007f74515d6644 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib64/libQt5Widgets.so.5 #45 0x00007f74515a62aa in QWidgetBackingStore::doSync() () at /lib64/libQt5Widgets.so.5 #46 0x00007f74515a647f in QWidgetBackingStore::sync() () at /lib64/libQt5Widgets.so.5 #47 0x00007f74515c53af in QWidgetPrivate::syncBackingStore() () at /lib64/libQt5Widgets.so.5 #48 0x00007f74515dd898 in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #49 0x00007f74516dd2ab in QMainWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #50 0x00007f7454002747 in KMainWindow::event(QEvent*) () at /lib64/libKF5XmlGui.so.5 #51 0x00007f7454047e65 in KXmlGuiWindow::event(QEvent*) () at /lib64/libKF5XmlGui.so.5 #52 0x00007f7451595ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #53 0x00007f745159d671 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #54 0x00007f74507fa6fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #55 0x00007f74515a6c95 in QWidgetBackingStore::sendUpdateRequest(QWidget*, QWidgetBackingStore::UpdateTime) () at /lib64/libQt5Widgets.so.5 #56 0x00007f74515a798d in QWidgetBackingStore::markDirty(QRect const&, QWidget*, QWidgetBackingStore::UpdateTime, QWidgetBackingStore::BufferState) () at /lib64/libQt5Widgets.so.5 #57 0x00007f74515c7e48 in QWidget::repaint(QRect const&) () at /lib64/libQt5Widgets.so.5 #58 0x00007f74515c7eb3 in QWidget::repaint() () at /lib64/libQt5Widgets.so.5 #59 0x00007f745500edb7 in KateVi::NormalViMode::commandOpenNewLineOver() (this=0x55b2b7c33ae0) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:1055 #60 0x00007f7455010242 in KateVi::NormalViMode::executeCommand(KateVi::Command const*) (this=0x55b2b7c33ae0, cmd=0x55b2b7c479c0) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:493 #61 0x00007f745501725c in KateVi::NormalViMode::handleKeypress(QKeyEvent const*) (this=0x55b2b7c33ae0, e=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:416 #62 0x00007f74550300dc in KateVi::InputModeManager::handleKeypress(QKeyEvent const*) (this=0x55b2b7c34de0, e=0x7ffef4f93f00) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/inputmodemanager.cpp:149 #63 0x00007f7454fff79c in KateViInputMode::keyPress(QKeyEvent*) (this=0x55b2b7c34950, e=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/inputmode/kateviinputmode.cpp:292 #64 0x00007f7454f7a5b8 in KateViewInternal::keyPressEvent(QKeyEvent*) (this=0x55b2b7c341b0, e=0x7ffef4f93f00) at /usr/src/debug/ktexteditor-5.33.0/src/view/kateviewinternal.cpp:2392 #65 0x00007f7454f82b73 in KateViewInternal::eventFilter(QObject*, QEvent*) (this=0x55b2b7c341b0, obj=0x55b2b7c341b0, e=0x7ffef4f93f00) at /usr/src/debug/ktexteditor-5.33.0/src/view/kateviewinternal.cpp:2312 #66 0x00007f74507fa4e2 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #67 0x00007f7451595ea5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #68 0x00007f745159f046 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #69 0x00007f74507fa6fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #70 0x00007f74550303b7 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffef4f93f00, receiver=<optimized out>) at /usr/include/qt5/QtCore/qcoreapplication.h:231 #71 0x00007f74550303b7 in KateVi::InputModeManager::feedKeyPresses(QString const&) const (this=0x55b2b7c34de0, keyPresses=...) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/inputmodemanager.cpp:238 #72 0x00007f745505497d in KateVi::LastChangeRecorder::replay(QString const&, QList<KateVi::Completion> const&) (this=0x55b2b7c44610, commands=..., completions=...) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/lastchangerecorder.cpp:119 #73 0x00007f745502f514 in KateVi::InputModeManager::repeatLastChange() (this=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/inputmodemanager.cpp:255 #74 0x00007f74550165c9 in KateVi::NormalViMode::commandRepeatLastChange() (this=0x55b2b7c33ae0) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:1734 #75 0x00007f7455010242 in KateVi::NormalViMode::executeCommand(KateVi::Command const*) (this=0x55b2b7c33ae0, cmd=0x55b2b7c407e0) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:493 #76 0x00007f745501725c in KateVi::NormalViMode::handleKeypress(QKeyEvent const*) (this=0x55b2b7c33ae0, e=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/modes/normalvimode.cpp:416 #77 0x00007f74550300dc in KateVi::InputModeManager::handleKeypress(QKeyEvent const*) (this=0x55b2b7c34de0, e=0x7ffef4f946d0) at /usr/src/debug/ktexteditor-5.33.0/src/vimode/inputmodemanager.cpp:149 #78 0x00007f7454fff79c in KateViInputMode::keyPress(QKeyEvent*) (this=0x55b2b7c34950, e=<optimized out>) at /usr/src/debug/ktexteditor-5.33.0/src/inputmode/kateviinputmode.cpp:292 #79 0x00007f7454fff812 in KateViInputMode::stealKey(QKeyEvent*) (this=0x55b2b7c34950, k=0x7ffef4f946d0) at /usr/src/debug/ktexteditor-5.33.0/src/inputmode/kateviinputmode.cpp:144 #80 0x00007f7454f82ad0 in KateViewInternal::eventFilter(QObject*, QEvent*) (this=0x55b2b7c341b0, obj=0x55b2b7c341b0, e=0x7ffef4f946d0) at /usr/src/debug/ktexteditor-5.33.0/src/view/kateviewinternal.cpp:2300 #81 0x00007f74507fa4e2 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #82 0x00007f7451595ea5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #83 0x00007f745159f046 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #84 0x00007f74507fa6fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #85 0x00007f74515fa9bb in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5 #86 0x00007f7451595ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #87 0x00007f745159d671 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #88 0x00007f74507fa6fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #89 0x00007f7451088948 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /lib64/libQt5Gui.so.5 #90 0x00007f745108dd65 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib64/libQt5Gui.so.5 #91 0x00007f745106f00d in QWindowSystemInterfacePrivate::handleWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib64/libQt5Gui.so.5 #92 0x00007f745107236d in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /lib64/libQt5Gui.so.5 #93 0x00007f7451088994 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /lib64/libQt5Gui.so.5 #94 0x00007f745108dd65 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib64/libQt5Gui.so.5 #95 0x00007f745106ec4b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5 #96 0x00007f7442e996c0 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5XcbQpa.so.5 #97 0x00007f7448e25e52 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #98 0x00007f7448e261d0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #99 0x00007f7448e2627c in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #100 0x00007f74508486cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #101 0x00007f74507f968a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #102 0x00007f745080118c in QCoreApplication::exec() () at /lib64/libQt5Core.so.5 #103 0x000055b2b532636e in main () *** Bug 381957 has been marked as a duplicate of this bug. *** I'm not set up for Kate development at the moment, so could someone do me a favour and test with the calls to m_viewInternal->repaint (); removed from commandOpenNewLineOver and commandOpenNewLineUnder? Looks like those were added in prehistoric times and might no longer be needed. Thanks! Interestingly, there are quite a lot of repaint() calls... Typically, an update() should have been enough, as far as I understand. In any case, I do not know why these calls were added - maybe because the cursor appearance changes from normal to insert mode and vice versa. I'm currently testing, but not sure I get this done today. Git commit ad51cece443bc6bb643fa4ca94293a13d3c2f852 by Dominik Haumann. Committed on 11/07/2017 at 21:29. Pushed by dhaumann into branch 'master'. Fix crash in vi input mode (sequence: "o" "Esc" "O" "Esc" ".") Thanks to Simon for the patch! FIXED-IN: 5.37 M +0 -2 src/vimode/modes/normalvimode.cpp https://commits.kde.org/ktexteditor/ad51cece443bc6bb643fa4ca94293a13d3c2f852 |