From 9f9948f95165864c5447533b91f2843f59375ac5 Mon Sep 17 00:00:00 2001 From: Evan Teran Date: Tue, 22 Dec 2020 12:39:50 -0500 Subject: [PATCH] allows ANY single character for a bookmark, while still enforcing bookmarks specified by users are letters. (#218) Should help address issues raised in https://github.com/eteran/nedit-ng/discussions/212 --- src/MainWindow.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 0160e10d..04328e9b 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -3141,8 +3141,11 @@ void MainWindow::action_Shift_Replace_Again() { */ void MainWindow::action_Mark(DocumentWidget *document, const QString &mark) { - if (mark.size() != 1 || !mark[0].isLetter()) { - qWarning("NEdit: action requires a single-letter label"); + // NOTE(eteran): as per discussion#212, bookmarks from macros + // might not be letters! So we have looser requirements here than + // the UI instigated version. + if (mark.size() != 1) { + qWarning("NEdit: action requires a single-character label"); QApplication::beep(); return; } @@ -3176,6 +3179,12 @@ void MainWindow::action_Mark(DocumentWidget *document) { return; } + if (result.size() != 1 || !result[0].isLetter()) { + qWarning("NEdit: action requires a single-letter label"); + QApplication::beep(); + return; + } + action_Mark(document, result); } @@ -3213,8 +3222,11 @@ void MainWindow::action_Goto_Mark(DocumentWidget *document, const QString &mark, emit_event("goto_mark", mark); - if (mark.size() != 1 || !mark[0].isLetter()) { - qWarning("NEdit: action requires a single-letter label"); + // NOTE(eteran): as per discussion#212, bookmarks from macros + // might not be letters! So we have looser requirements here than + // the UI instigated version. + if (mark.size() != 1) { + qWarning("NEdit: action requires a single-character label"); QApplication::beep(); return; } @@ -3245,6 +3257,12 @@ void MainWindow::action_Goto_Mark_Dialog(DocumentWidget *document, bool extend) return; } + if (result.size() != 1 || !result[0].isLetter()) { + qWarning("NEdit: action requires a single-letter label"); + QApplication::beep(); + return; + } + action_Goto_Mark(document, result, extend); }