patch 8.1.2075: get many log messages when waiting for a typed character

Problem:    Get many log messages when waiting for a typed character.
Solution:   Do not repeat the repeated messages when nothing happens.
diff --git a/src/channel.c b/src/channel.c
index d5f4ecc..34ee02a 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -194,8 +194,6 @@
     }
 }
 
-static int did_log_msg = TRUE;
-
 #ifndef PROTO  // prototype is in proto.h
     void
 ch_log(channel_T *ch, const char *fmt, ...)
@@ -210,7 +208,7 @@
 	va_end(ap);
 	fputc('\n', log_fd);
 	fflush(log_fd);
-	did_log_msg = TRUE;
+	did_repeated_msg = 0;
     }
 }
 #endif
@@ -235,7 +233,7 @@
 	va_end(ap);
 	fputc('\n', log_fd);
 	fflush(log_fd);
-	did_log_msg = TRUE;
+	did_repeated_msg = 0;
     }
 }
 
@@ -3918,7 +3916,7 @@
 	vim_ignored = (int)fwrite(buf_arg, len_arg, 1, log_fd);
 	fprintf(log_fd, "'\n");
 	fflush(log_fd);
-	did_log_msg = TRUE;
+	did_repeated_msg = 0;
     }
 
     for (;;)
@@ -4432,10 +4430,11 @@
 
     /* Only do this message when another message was given, otherwise we get
      * lots of them. */
-    if (did_log_msg)
+    if ((did_repeated_msg & REPEATED_MSG_LOOKING) == 0)
     {
 	ch_log(NULL, "looking for messages on channels");
-	did_log_msg = FALSE;
+	// now we should also give the message for SafeState
+	did_repeated_msg = REPEATED_MSG_LOOKING;
     }
     while (channel != NULL)
     {