patch 7.4.2101
Problem:    Looping over windows, buffers and tab pages is inconsistant.
Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
diff --git a/src/mark.c b/src/mark.c
index 1e6b26a7..9f0faf9 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1864,7 +1864,7 @@
 #endif
 
     fputs(_("\n# History of marks within files (newest to oldest):\n"), fp_out);
-    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+    FOR_ALL_BUFFERS(buf)
     {
 	/*
 	 * Only write something if buffer has been loaded and at least one
@@ -2018,7 +2018,7 @@
 	else /* fp_out != NULL */
 	{
 	    /* This is slow if there are many buffers!! */
-	    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+	    FOR_ALL_BUFFERS(buf)
 		if (buf->b_ffname != NULL)
 		{
 		    home_replace(NULL, buf->b_ffname, name_buf, LSIZE, TRUE);