patch 9.0.0978: build errors without the +channel feature

Problem:    Build errors without the +channel feature. (John Marriott)
Solution:   Adjust #ifdefs.
diff --git a/src/globals.h b/src/globals.h
index 0cc7c9b..8fb4340 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1998,21 +1998,23 @@
 # endif
 		;
 
-EXTERN int did_repeated_msg INIT(= 0);
-# define REPEATED_MSG_LOOKING	    1
-# define REPEATED_MSG_SAFESTATE	    2
+// Whether a redraw is needed for appending a line to a buffer.
+EXTERN int channel_need_redraw INIT(= FALSE);
 
+# define FOR_ALL_CHANNELS(ch) \
+    for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
+# define FOR_ALL_JOBS(job) \
+    for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
+#endif
+
+#ifdef FEAT_EVAL
 // This flag is set when outputting a terminal control code and reset in
 // out_flush() when characters have been written.
 EXTERN int ch_log_output INIT(= FALSE);
 
-// Whether a redraw is needed for appending a line to a buffer.
-EXTERN int channel_need_redraw INIT(= FALSE);
-
-#define FOR_ALL_CHANNELS(ch) \
-    for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
-#define FOR_ALL_JOBS(job) \
-    for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
+EXTERN int did_repeated_msg INIT(= 0);
+# define REPEATED_MSG_LOOKING	    1
+# define REPEATED_MSG_SAFESTATE	    2
 #endif
 
 #if defined(FEAT_DIFF)
diff --git a/src/logfile.c b/src/logfile.c
index 3ab2c0f..6c159b0 100644
--- a/src/logfile.c
+++ b/src/logfile.c
@@ -75,7 +75,7 @@
 }
 
     static void
-ch_log_lead(const char *what, channel_T *ch, ch_part_T part)
+ch_log_lead(const char *what, channel_T *ch UNUSED, ch_part_T part UNUSED)
 {
     if (log_fd == NULL)
 	return;
diff --git a/src/message.c b/src/message.c
index a2fc008..591691f 100644
--- a/src/message.c
+++ b/src/message.c
@@ -37,7 +37,7 @@
 static char_u	*confirm_msg_tail;		// tail of confirm_msg
 static void display_confirm_msg(void);
 #endif
-#ifdef FEAT_JOB_CHANNEL
+#ifdef FEAT_EVAL
 static int emsg_to_channel_log = FALSE;
 #endif
 
diff --git a/src/proto.h b/src/proto.h
index 4c7f8c9..9d1e134 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -263,11 +263,12 @@
 # ifdef FEAT_JOB_CHANNEL
 #  include "job.pro"
 #  include "channel.pro"
+# endif
 
+# ifdef FEAT_EVAL
 // Not generated automatically so that we can add an extra attribute.
 void ch_log(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 void ch_error(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
-
 # endif
 
 # if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL)
diff --git a/src/typval.c b/src/typval.c
index a445bf8..b1a0060 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -619,6 +619,16 @@
     return (args[idx].v_type == VAR_UNKNOWN
 	    || check_for_job_arg(args, idx) != FAIL) ? OK : FAIL;
 }
+#else
+/*
+ * Give an error and return FAIL unless "args[idx]" is an optional channel or a
+ * job.  Used without the +channel feature, thus only VAR_UNKNOWN is accepted.
+ */
+    int
+check_for_opt_chan_or_job_arg(typval_T *args, int idx)
+{
+    return args[idx].v_type == VAR_UNKNOWN ? OK : FAIL;
+}
 #endif
 
 /*
diff --git a/src/version.c b/src/version.c
index 528b804..537f6aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    978,
+/**/
     977,
 /**/
     976,