patch 9.0.0278: the +wildignore feature is nearly always available

Problem:    The +wildignore feature is nearly always available.
Solution:   Graduate +wildignore for consistency.
diff --git a/src/bufwrite.c b/src/bufwrite.c
index 5db8f29..b283b5e 100644
--- a/src/bufwrite.c
+++ b/src/bufwrite.c
@@ -1136,10 +1136,8 @@
 
     // If 'backupskip' is not empty, don't make a backup for some files.
     dobackup = (p_wb || p_bk || *p_pm != NUL);
-#ifdef FEAT_WILDIGN
     if (dobackup && *p_bsk != NUL && match_file_list(p_bsk, sfname, ffname))
 	dobackup = FALSE;
-#endif
 
     // Save the value of got_int and reset it.  We don't want a previous
     // interruption cancel writing, only hitting CTRL-C while writing should
diff --git a/src/evalfunc.c b/src/evalfunc.c
index b3084f3..a41e675 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6260,13 +6260,7 @@
 		0
 #endif
 		},
-	{"wildignore",
-#ifdef FEAT_WILDIGN
-		1
-#else
-		0
-#endif
-		},
+	{"wildignore", 1},
 	{"wildmenu",
 #ifdef FEAT_WILDMENU
 		1
diff --git a/src/feature.h b/src/feature.h
index bffd80a..529ada5 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -118,6 +118,7 @@
  * +textobjects		Text objects: "vaw", "das", etc.
  * +file_in_path	"gf" and "<cfile>" commands.
  * +path_extra		up/downwards searching in 'path' and 'tags'.
+ * +wildignore		'wildignore' and 'backupskip' options
  *
  * Obsolete:
  * +tag_old_static	Old style static tags: "file:tag  file  ..".
@@ -285,7 +286,7 @@
 /*
  * +timers		timer_start()
  */
-#if defined(FEAT_RELTIME) && (defined(UNIX) || defined(MSWIN) || defined(VMS) )
+#if defined(FEAT_RELTIME) && (defined(UNIX) || defined(MSWIN) || defined(VMS))
 # define FEAT_TIMERS
 #endif
 
@@ -338,14 +339,6 @@
 #endif
 
 /*
- * +wildignore		'wildignore' and 'backupskip' options
- *			Needed for Unix to make "crontab -e" work.
- */
-#if defined(FEAT_NORMAL) || defined(UNIX)
-# define FEAT_WILDIGN
-#endif
-
-/*
  * +wildmenu		'wildmenu' option
  */
 #if defined(FEAT_NORMAL)
diff --git a/src/fileio.c b/src/fileio.c
index 8437b2b..701521a 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -312,7 +312,9 @@
 	curbuf->b_op_start = orig_start;
 
 	if (flags & READ_NOFILE)
-	    return NOTDONE;  // so that BufEnter can be triggered
+	    // Return NOTDONE instead of FAIL so that BufEnter can be triggered
+	    // and other operations don't fail.
+	    return NOTDONE;
     }
 
     if ((shortmess(SHM_OVER) || curbuf->b_help) && p_verbose == 0)
@@ -5402,7 +5404,6 @@
     return result;
 }
 
-#if defined(FEAT_WILDIGN) || defined(PROTO)
 /*
  * Return TRUE if a file matches with a pattern in "list".
  * "list" is a comma-separated list of patterns, like 'wildignore'.
@@ -5436,7 +5437,6 @@
     }
     return FALSE;
 }
-#endif
 
 /*
  * Convert the given pattern "pat" which has shell style wildcards in it, into
diff --git a/src/filepath.c b/src/filepath.c
index f61603f..646a25e 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -3136,7 +3136,6 @@
     if ((flags & EW_KEEPALL) || retval == FAIL)
 	return retval;
 
-#ifdef FEAT_WILDIGN
     /*
      * Remove names that match 'wildignore'.
      */
@@ -3172,7 +3171,6 @@
 	    return FAIL;
 	}
     }
-#endif
 
     /*
      * Move the names where 'suffixes' match to the end.
diff --git a/src/option.c b/src/option.c
index 05e0527..3e1473f 100644
--- a/src/option.c
+++ b/src/option.c
@@ -126,17 +126,16 @@
 	set_string_default_esc("sh", p, TRUE);
 #endif
 
-#ifdef FEAT_WILDIGN
     /*
      * Set the default for 'backupskip' to include environment variables for
      * temp files.
      */
     {
-# ifdef UNIX
+#ifdef UNIX
 	static char	*(names[4]) = {"", "TMPDIR", "TEMP", "TMP"};
-# else
+#else
 	static char	*(names[3]) = {"TMPDIR", "TEMP", "TMP"};
-# endif
+#endif
 	int		len;
 	garray_T	ga;
 	int		mustfree;
@@ -148,15 +147,15 @@
 	for (n = 0; n < (long)ARRAY_LENGTH(names); ++n)
 	{
 	    mustfree = FALSE;
-# ifdef UNIX
+#ifdef UNIX
 	    if (*names[n] == NUL)
-#  ifdef MACOS_X
+# ifdef MACOS_X
 		p = (char_u *)"/private/tmp";
-#  else
+# else
 		p = (char_u *)"/tmp";
-#  endif
-	    else
 # endif
+	    else
+#endif
 		p = vim_getenv((char_u *)names[n], &mustfree);
 	    if (p != NULL && *p != NUL)
 	    {
@@ -186,7 +185,6 @@
 	    vim_free(ga.ga_data);
 	}
     }
-#endif
 
     /*
      * 'maxmemtot' and 'maxmem' may have to be adjusted for available memory
diff --git a/src/option.h b/src/option.h
index d40dcb5..aeb80ce 100644
--- a/src/option.h
+++ b/src/option.h
@@ -451,9 +451,7 @@
 #define BO_TERM		0x40000
 #define BO_WILD		0x80000
 
-#ifdef FEAT_WILDIGN
 EXTERN char_u	*p_bsk;		// 'backupskip'
-#endif
 #ifdef FEAT_CRYPT
 EXTERN char_u	*p_cm;		// 'cryptmethod'
 #endif
@@ -1061,9 +1059,7 @@
 #define FEAT_WAK
 EXTERN char_u	*p_wak;		// 'winaltkeys'
 #endif
-#ifdef FEAT_WILDIGN
 EXTERN char_u	*p_wig;		// 'wildignore'
-#endif
 EXTERN int	p_wiv;		// 'weirdinvert'
 EXTERN char_u	*p_ww;		// 'whichwrap'
 EXTERN long	p_wc;		// 'wildchar'
diff --git a/src/optiondefs.h b/src/optiondefs.h
index de63ceb..099ad2e 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -427,13 +427,8 @@
 #endif
 					    (char_u *)0L} SCTX_INIT},
     {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_WILDIGN
 			    (char_u *)&p_bsk, PV_NONE,
 			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
 			    SCTX_INIT},
     {"balloondelay","bdlay",P_NUM|P_VI_DEF,
 #ifdef FEAT_BEVAL
@@ -2757,11 +2752,7 @@
 			    (char_u *)&p_wcm, PV_NONE,
 			    {(char_u *)0L, (char_u *)0L} SCTX_INIT},
     {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_WILDIGN
 			    (char_u *)&p_wig, PV_NONE,
-#else
-			    (char_u *)NULL, PV_NONE,
-#endif
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
     {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
 			    (char_u *)&p_wic, PV_NONE,
diff --git a/src/version.c b/src/version.c
index 1fd798b..9088962 100644
--- a/src/version.c
+++ b/src/version.c
@@ -655,11 +655,7 @@
 	"-vtp",
 # endif
 #endif
-#ifdef FEAT_WILDIGN
 	"+wildignore",
-#else
-	"-wildignore",
-#endif
 #ifdef FEAT_WILDMENU
 	"+wildmenu",
 #else
@@ -724,6 +720,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    278,
+/**/
     277,
 /**/
     276,