aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/mark.c2
-rw-r--r--src/nvim/mark_defs.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/mark.c b/src/nvim/mark.c
index 2402ea3035..0bf5875269 100644
--- a/src/nvim/mark.c
+++ b/src/nvim/mark.c
@@ -607,6 +607,8 @@ void mark_view_restore(fmark_T *fm)
{
if (fm != NULL && fm->view.topline_offset >= 0) {
linenr_T topline = fm->mark.lnum - fm->view.topline_offset;
+ // If the mark does not have a view, topline_offset is MAXLNUM,
+ // and this check can prevent restoring mark view in that case.
if (topline >= 1) {
set_topline(curwin, topline);
}
diff --git a/src/nvim/mark_defs.h b/src/nvim/mark_defs.h
index 16d85a6e51..a78056c5f9 100644
--- a/src/nvim/mark_defs.h
+++ b/src/nvim/mark_defs.h
@@ -64,9 +64,10 @@ typedef enum {
/// Represents view in which the mark was created
typedef struct fmarkv {
linenr_T topline_offset; ///< Amount of lines from the mark lnum to the top of the window.
+ ///< Use MAXLNUM to indicate that the mark does not have a view.
} fmarkv_T;
-#define INIT_FMARKV { 0 }
+#define INIT_FMARKV { MAXLNUM }
/// Structure defining single local mark
typedef struct filemark {