From 7cfea8bb8ce4bd7e87a8d40492d1271268389c3f Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Fri, 8 Oct 2004 15:35:33 +0000
Subject: [PATCH] in mark_order(), add check for MARK_ISSET's not being set;
 also make one more int -> bool conversion and cosmetic fix

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1974 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   | 3 +++
 src/files.c | 6 +++---
 src/utils.c | 4 ++++
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a61e0e2b..60805692 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -154,6 +154,9 @@ CVS code -
 	  wholewords, not after all other parameters. (DLR)
 	- Maintain current_y's value when moving up or down lines so
 	  that smooth scrolling works correctly. (DLR)
+- utils.c:
+  mark_order()
+	- Add check for MARK_ISSET's not being set. (DLR)
 - winio.c:
   unget_kbinput()
 	- New function used as a wrapper for ungetch(). (DLR)
diff --git a/src/files.c b/src/files.c
index 93ee44ae..376b34ac 100644
--- a/src/files.c
+++ b/src/files.c
@@ -1719,7 +1719,7 @@ int write_marked(const char *name, int tmp, int append)
     int retval = -1;
     filestruct *fileagebak = fileage;
     filestruct *filebotbak = filebot;
-    int oldmod = ISSET(MODIFIED);
+    bool old_modified = ISSET(MODIFIED);
 	/* write_file() unsets the MODIFIED flag. */
     size_t topx;
 	/* The column of the beginning of the mark. */
@@ -1730,7 +1730,7 @@ int write_marked(const char *name, int tmp, int append)
 	/* The location of the character we nulled. */
 
     if (!ISSET(MARK_ISSET))
-	return -1;
+	return retval;
 
     /* Set fileage as the top of the mark, and filebot as the bottom. */
     if (current->lineno > mark_beginbuf->lineno ||
@@ -1763,7 +1763,7 @@ int write_marked(const char *name, int tmp, int append)
     *origcharloc = origchar;
     fileage = fileagebak;
     filebot = filebotbak;
-    if (oldmod)
+    if (old_modified)
 	set_modified();
 
     return retval;
diff --git a/src/utils.c b/src/utils.c
index d3d8e32c..25c0d63c 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -441,6 +441,10 @@ void mark_order(const filestruct **top, size_t *top_x, const filestruct
 	**bot, size_t *bot_x)
 {
     assert(top != NULL && top_x != NULL && bot != NULL && bot_x != NULL);
+
+    if (!ISSET(MARK_ISSET))
+	return;
+
     if ((current->lineno == mark_beginbuf->lineno && current_x > mark_beginx)
 	|| current->lineno > mark_beginbuf->lineno) {
 	*top = mark_beginbuf;
-- 
GitLab