patch 8.0.0930: terminal buffers are stored in the viminfo file

Problem:    Terminal buffers are stored in the viminfo file while they can't
            be useful.
Solution:   Skip terminal buffers for file marks and buffer list
diff --git a/src/mark.c b/src/mark.c
index d93dfac..db5f571 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1649,6 +1649,19 @@
     }
 }
 
+/*
+ * Return TRUE if marks for "buf" should not be written.
+ */
+    static int
+skip_for_viminfo(buf_T *buf)
+{
+    return
+#ifdef FEAT_TERMINAL
+	    bt_terminal(buf) ||
+#endif
+	    removable(buf->b_ffname);
+}
+
     void
 write_viminfo_filemarks(FILE *fp)
 {
@@ -1681,7 +1694,7 @@
      * Move '0 to '1, '1 to '2, etc. until the matching one or '9
      * Set the '0 mark to current cursor position.
      */
-    if (curbuf->b_ffname != NULL && !removable(curbuf->b_ffname))
+    if (curbuf->b_ffname != NULL && !skip_for_viminfo(curbuf))
     {
 	name = buflist_nr2name(curbuf->b_fnum, TRUE, FALSE);
 	for (i = NMARKS; i < NMARKS + EXTRA_MARKS - 1; ++i)
@@ -1757,7 +1770,7 @@
 	    --idx;
 	if (fm->fmark.fnum == 0
 		|| ((buf = buflist_findnr(fm->fmark.fnum)) != NULL
-		    && !removable(buf->b_ffname)))
+		    && !skip_for_viminfo(buf)))
 	    write_one_filemark(fp, fm, '-', '\'');
     }
 #endif
@@ -1917,7 +1930,8 @@
 		    }
 	    }
 	    if (is_mark_set && buf->b_ffname != NULL
-		      && buf->b_ffname[0] != NUL && !removable(buf->b_ffname))
+		      && buf->b_ffname[0] != NUL
+		      && !skip_for_viminfo(buf))
 	    {
 		if (buflist == NULL)
 		    write_buffer_marks(buf, fp_out);