patch 9.0.0265: no good reason why the "gf" command isn't in the tiny version

Problem:    No good reason why the "gf" command is not in the tiny version.
Solution:   Graduate the file_in_path feature.
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 7df5e9f..49d538d 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -2736,8 +2736,6 @@
 		Returns an empty string if the directory is not found.
 
 		This is quite similar to the ex-command `:find`.
-		{only available when compiled with the |+file_in_path|
-		feature}
 
 		Can also be used as a |method|: >
 			GetName()->finddir()
@@ -10532,7 +10530,8 @@
 extra_search		Compiled with support for |'incsearch'| and
 			|'hlsearch'|
 farsi			Support for Farsi was removed |farsi|.
-file_in_path		Compiled with support for |gf| and |<cfile>|
+file_in_path		Compiled with support for |gf| and |<cfile>| (always
+			true)
 filterpipe		When 'shelltemp' is off pipes are used for shell
 			read/write/filter commands
 find_in_path		Compiled with support for include file searches
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index e09ec39..e29369c 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -199,9 +199,6 @@
 		currently displayed match is used.  With CTRL-W the part of
 		the word that was already typed is not inserted again.
 
-		CTRL-F and CTRL-P: {only when |+file_in_path| feature is
-		included}
-
 					*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
 					*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
 CTRL-R CTRL-R {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 0ce48af..7eaf48d 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -247,8 +247,6 @@
 							*:fin* *:find*
 :fin[d][!] [++opt] [+cmd] {file}
 			Find {file} in 'path' and then |:edit| it.
-			{not available when the |+file_in_path| feature was
-			disabled at compile time}
 
 :{count}fin[d][!] [++opt] [+cmd] {file}
 			Just like ":find", but use the {count} match in
@@ -322,8 +320,6 @@
 			For Unix the '~' character is expanded, like in
 			"~user/file".  Environment variables are expanded too
 			|expand-env|.
-			{not available when the |+file_in_path| feature was
-			disabled at compile time}
 
 							*v_gf*
 {Visual}[count]gf	Same as "gf", but the highlighted text is used as the
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 9141763..1a21be8 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1559,8 +1559,6 @@
 						*'cdpath'* *'cd'* *E344* *E346*
 'cdpath' 'cd'		string	(default: equivalent to $CDPATH or ",,")
 			global
-			{not available when compiled without the
-			|+file_in_path| feature}
 	This is a list of directories which will be searched when using the
 	|:cd|, |:tcd| and |:lcd| commands, provided that the directory being
 	searched for has a relative path, not an absolute part starting with
@@ -7726,8 +7724,6 @@
 						*'suffixesadd'* *'sua'*
 'suffixesadd' 'sua'	string	(default "")
 			local to buffer
-			{not available when compiled without the
-			|+file_in_path| feature}
 	Comma-separated list of suffixes, which are used when searching for a
 	file for the "gf", "[I", etc. commands.  Example: >
 		:set suffixesadd=.java
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 54ac11e..a010e2f 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -81,8 +81,6 @@
 :[count]tabf[ind] [++opt] [+cmd] {file}			*:tabf* *:tabfind*
 		Open a new tab page and edit {file} in 'path', like with
 		|:find|.  For [count] see |:tabnew| above.
-		{not available when the |+file_in_path| feature was disabled
-		at compile time}
 
 :[count]tab {cmd}					*:tab*
 		Execute {cmd} and when it opens a new window open a new tab
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 5c64897..13f648f 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -843,30 +843,22 @@
 		If the name is a hypertext link that looks like
 		"type://machine/path", only "/path" is used.
 		If a count is given, the count'th matching file is edited.
-		{not available when the |+file_in_path| feature was disabled
-		at compile time}
 
 CTRL-W F						*CTRL-W_F*
 		Split current window in two.  Edit file name under cursor and
 		jump to the line number following the file name. See |gF| for
 		details on how the line number is obtained.
-		{not available when the |+file_in_path| feature was disabled
-		at compile time}
 
 CTRL-W gf						*CTRL-W_gf*
 		Open a new tab page and edit the file name under the cursor.
 		Like "tab split" and "gf", but the new tab page isn't created
 		if the file does not exist.
-		{not available when the |+file_in_path| feature was disabled
-		at compile time}
 
 CTRL-W gF						*CTRL-W_gF*
 		Open a new tab page and edit the file name under the cursor
 		and jump to the line number following the file name.  Like
 		"tab split" and "gF", but the new tab page isn't created if
 		the file does not exist.
-		{not available when the |+file_in_path| feature was disabled
-		at compile time}
 
 CTRL-W gt						*CTRL-W_gt*
 		Go to next tab page, same as `gt`.
diff --git a/src/alloc.c b/src/alloc.c
index 7ca20c7..932d67a 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -158,10 +158,10 @@
     void *
 alloc_id(size_t size, alloc_id_T id UNUSED)
 {
-#ifdef FEAT_EVAL
+# ifdef FEAT_EVAL
     if (alloc_fail_id == id && alloc_does_fail(size))
 	return NULL;
-#endif
+# endif
     return lalloc(size, TRUE);
 }
 #endif
@@ -425,9 +425,7 @@
     }
 
     free_titles();
-# if defined(FEAT_SEARCHPATH)
     free_findfile();
-# endif
 
     // Obviously named calls.
     free_all_autocmds();
diff --git a/src/buffer.c b/src/buffer.c
index ebba88b..cec2abb 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2324,9 +2324,7 @@
     clear_string_option(&buf->b_s.b_p_spl);
     clear_string_option(&buf->b_s.b_p_spo);
 #endif
-#ifdef FEAT_SEARCHPATH
     clear_string_option(&buf->b_p_sua);
-#endif
     clear_string_option(&buf->b_p_ft);
     clear_string_option(&buf->b_p_cink);
     clear_string_option(&buf->b_p_cino);
diff --git a/src/errors.h b/src/errors.h
index edd25ce..b903ae7 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -853,7 +853,6 @@
 EXTERN char e_invalid_path_number_must_be_at_end_of_path_or_be_followed_by_str[]
 	INIT(= N_("E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'."));
 #endif
-#ifdef FEAT_SEARCHPATH
 EXTERN char e_cant_find_directory_str_in_cdpath[]
 	INIT(= N_("E344: Can't find directory \"%s\" in cdpath"));
 EXTERN char e_cant_find_file_str_in_path[]
@@ -862,7 +861,6 @@
 	INIT(= N_("E346: No more directory \"%s\" found in cdpath"));
 EXTERN char e_no_more_file_str_found_in_path[]
 	INIT(= N_("E347: No more file \"%s\" found in path"));
-#endif
 EXTERN char e_no_string_under_cursor[]
 	INIT(= N_("E348: No string under cursor"));
 EXTERN char e_no_identifier_under_cursor[]
@@ -1090,12 +1088,10 @@
 	INIT(= N_("E444: Cannot close last window"));
 EXTERN char e_other_window_contains_changes[]
 	INIT(= N_("E445: Other window contains changes"));
-#ifdef FEAT_SEARCHPATH
 EXTERN char e_no_file_name_under_cursor[]
 	INIT(= N_("E446: No file name under cursor"));
 EXTERN char e_cant_find_file_str_in_path_2[]
 	INIT(= N_("E447: Can't find file \"%s\" in path"));
-#endif
 #ifdef USING_LOAD_LIBRARY
 EXTERN char e_could_not_load_library_function_str[]
 	INIT(= N_("E448: Could not load library function %s"));
diff --git a/src/evalfunc.c b/src/evalfunc.c
index c199bdb..3c26453 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5646,13 +5646,7 @@
 		0
 #endif
 		},
-	{"file_in_path",
-#ifdef FEAT_SEARCHPATH
-		1
-#else
-		0
-#endif
-		},
+	{"file_in_path", 1},
 	{"filterpipe",
 #if defined(FEAT_FILTERPIPE) && !defined(VIMDLL)
 		1
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index b9ff423..89c9d26 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6678,9 +6678,7 @@
 ex_splitview(exarg_T *eap)
 {
     win_T	*old_curwin = curwin;
-#if defined(FEAT_SEARCHPATH) || defined(FEAT_BROWSE)
     char_u	*fname = NULL;
-#endif
 #ifdef FEAT_BROWSE
     char_u	dot_path[] = ".";
     int		save_cmod_flags = cmdmod.cmod_flags;
@@ -6708,7 +6706,6 @@
     }
 #endif
 
-#ifdef FEAT_SEARCHPATH
     if (eap->cmdidx == CMD_sfind || eap->cmdidx == CMD_tabfind)
     {
 	fname = find_file_in_path(eap->arg, (int)STRLEN(eap->arg),
@@ -6718,11 +6715,7 @@
 	eap->arg = fname;
     }
 # ifdef FEAT_BROWSE
-    else
-# endif
-#endif
-#ifdef FEAT_BROWSE
-    if ((cmdmod.cmod_flags & CMOD_BROWSE)
+    else if ((cmdmod.cmod_flags & CMOD_BROWSE)
 	    && eap->cmdidx != CMD_vnew
 	    && eap->cmdidx != CMD_new)
     {
@@ -6786,10 +6779,8 @@
     cmdmod.cmod_flags = save_cmod_flags;
 # endif
 
-# if defined(FEAT_SEARCHPATH) || defined(FEAT_BROWSE)
 theend:
     vim_free(fname);
-# endif
 }
 
 /*
@@ -6980,7 +6971,6 @@
     static void
 ex_find(exarg_T *eap)
 {
-#ifdef FEAT_SEARCHPATH
     char_u	*fname;
     int		count;
 
@@ -7002,12 +6992,9 @@
     if (fname != NULL)
     {
 	eap->arg = fname;
-#endif
 	do_exedit(eap, NULL);
-#ifdef FEAT_SEARCHPATH
 	vim_free(fname);
     }
-#endif
 }
 
 /*
@@ -9273,7 +9260,6 @@
 		}
 		break;
 
-#ifdef FEAT_SEARCHPATH
 	case SPEC_CFILE:	// file name under cursor
 		result = file_name_at_cursor(FNAME_MESS|FNAME_HYP, 1L, NULL);
 		if (result == NULL)
@@ -9283,7 +9269,6 @@
 		}
 		resultbuf = result;	    // remember allocated string
 		break;
-#endif
 
 	case SPEC_AFILE:	// file name for autocommand
 		result = autocmd_fname;
diff --git a/src/feature.h b/src/feature.h
index d594171..9c094e5 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -97,6 +97,7 @@
  * These features used to be optional but are now always enabled:
  * +windows		Multiple windows.  Without this there is no help
  *			window and no status lines.
+ * +autocmd		Automatic commands
  * +vertsplit		Vertically split windows.
  * +cmdhist		Command line history.
  * +localmap		Mappings and abbreviations local to a buffer.
@@ -115,6 +116,7 @@
  * +cindent		C code indenting (From Eric Fischer).
  * +smartindent		smart C code indenting when the 'si' option is set.
  * +textobjects		Text objects: "vaw", "das", etc.
+ * +file_in_path	"gf" and "<cfile>" commands.
  *
  * Obsolete:
  * +tag_old_static	Old style static tags: "file:tag  file  ..".
@@ -202,19 +204,10 @@
 #endif
 
 /*
- * +file_in_path	"gf" and "<cfile>" commands.
- */
-#ifdef FEAT_NORMAL
-# define FEAT_SEARCHPATH
-#endif
-
-/*
  * +find_in_path	"[I" ":isearch" "^W^I", ":checkpath", etc.
  */
 #ifdef FEAT_NORMAL
-# ifdef FEAT_SEARCHPATH	// FEAT_SEARCHPATH is required
-#  define FEAT_FIND_ID
-# endif
+# define FEAT_FIND_ID
 #endif
 
 /*
@@ -324,7 +317,6 @@
 
 /*
  * +diff		Displaying diffs in a nice way.
- *			Requires +windows and +autocmd.
  *			Can be enabled in autoconf already.
  */
 #if defined(FEAT_NORMAL) && !defined(FEAT_DIFF)
@@ -380,14 +372,14 @@
 
 /*
  * +syntax		syntax highlighting.  When using this, it's a good
- *			idea to have +autocmd and +eval too.
+ *			idea to have +eval too.
  */
 #if defined(FEAT_NORMAL) || defined(PROTO)
 # define FEAT_SYN_HL
 #endif
 
 /*
- * +conceal		'conceal' option.  Needs syntax highlighting
+ * +conceal		'conceal' option.  Depends on syntax highlighting
  *			as this is how the concealed text is defined.
  */
 #if defined(FEAT_BIG) && defined(FEAT_SYN_HL)
diff --git a/src/filepath.c b/src/filepath.c
index ecee8db..f61603f 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -942,7 +942,6 @@
     typval_T	*rettv,
     int		find_what UNUSED)
 {
-#ifdef FEAT_SEARCHPATH
     char_u	*fname;
     char_u	*fresult = NULL;
     char_u	*path = *curbuf->b_p_path == NUL ? p_path : curbuf->b_p_path;
@@ -951,7 +950,6 @@
     int		count = 1;
     int		first = TRUE;
     int		error = FALSE;
-#endif
 
     rettv->vval.v_string = NULL;
     rettv->v_type = VAR_STRING;
@@ -962,7 +960,6 @@
 		    && check_for_opt_number_arg(argvars, 2) == FAIL)))
 	return;
 
-#ifdef FEAT_SEARCHPATH
     fname = tv_get_string(&argvars[0]);
 
     if (argvars[1].v_type != VAR_UNKNOWN)
@@ -1006,7 +1003,6 @@
 
     if (rettv->v_type == VAR_STRING)
 	rettv->vval.v_string = fresult;
-#endif
 }
 
 /*
@@ -3879,9 +3875,7 @@
     static int		recursive = FALSE;
     int			add_pat;
     int			retval = OK;
-#if defined(FEAT_SEARCHPATH)
     int			did_expand_in_path = FALSE;
-#endif
 
     /*
      * expand_env() is called to expand things like "~user".  If this fails,
@@ -3971,7 +3965,6 @@
 	     */
 	    if (mch_has_exp_wildcard(p) || (flags & EW_ICASE))
 	    {
-#if defined(FEAT_SEARCHPATH)
 		if ((flags & EW_PATH)
 			&& !mch_isFullName(p)
 			&& !(p[0] == '.'
@@ -3987,7 +3980,6 @@
 		    did_expand_in_path = TRUE;
 		}
 		else
-#endif
 		    add_pat = mch_expandpath(&ga, p, flags);
 	    }
 	}
@@ -4007,10 +3999,8 @@
 		vim_free(t);
 	}
 
-#if defined(FEAT_SEARCHPATH)
 	if (did_expand_in_path && ga.ga_len > 0 && (flags & EW_PATH))
 	    uniquefy_paths(&ga, p);
-#endif
 	if (p != pat[i])
 	    vim_free(p);
     }
diff --git a/src/findfile.c b/src/findfile.c
index 881eef1..8267be6 100644
--- a/src/findfile.c
+++ b/src/findfile.c
@@ -709,14 +709,10 @@
     char_u	*path_end = NULL;
 #endif
     ff_stack_T	*stackp;
-#if defined(FEAT_SEARCHPATH) || defined(FEAT_PATH_EXTRA)
     int		len;
-#endif
     int		i;
     char_u	*p;
-#ifdef FEAT_SEARCHPATH
     char_u	*suf;
-#endif
     ff_search_ctx_T *search_ctx;
 
     if (search_ctx_arg == NULL)
@@ -995,14 +991,12 @@
 			 * Try without extra suffix and then with suffixes
 			 * from 'suffixesadd'.
 			 */
-#ifdef FEAT_SEARCHPATH
 			len = (int)STRLEN(file_path);
 			if (search_ctx->ffsc_tagfile)
 			    suf = (char_u *)"";
 			else
 			    suf = curbuf->b_p_sua;
 			for (;;)
-#endif
 			{
 			    // if file exists and we didn't already find it
 			    if ((path_with_url(file_path)
@@ -1072,13 +1066,11 @@
 				return file_path;
 			    }
 
-#ifdef FEAT_SEARCHPATH
 			    // Not found or found already, try next suffix.
 			    if (*suf == NUL)
 				break;
 			    copy_option_part(&suf, file_path + len,
 							 MAXPATHL - len, ",");
-#endif
 			}
 		    }
 		}
@@ -1633,7 +1625,6 @@
 }
 #endif
 
-#if defined(FEAT_SEARCHPATH) || defined(PROTO)
 /*
  * Find the file name "ptr[len]" in the path.  Also finds directory names.
  *
@@ -2636,7 +2627,6 @@
     return gap->ga_len;
 }
 
-#endif // FEAT_SEARCHPATH
 
 /*
  * Converts a file name into a canonical form. It simplifies a file name into
diff --git a/src/misc2.c b/src/misc2.c
index 38dcb48..84adafa 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2399,15 +2399,12 @@
 
 
 /*
- * Change directory to "new_dir".  If FEAT_SEARCHPATH is defined, search
- * 'cdpath' for relative directory names, otherwise just mch_chdir().
+ * Change directory to "new_dir".  Search 'cdpath' for relative directory
+ * names, otherwise just mch_chdir().
  */
     int
 vim_chdir(char_u *new_dir)
 {
-#ifndef FEAT_SEARCHPATH
-    return mch_chdir((char *)new_dir);
-#else
     char_u	*dir_name;
     int		r;
 
@@ -2418,7 +2415,6 @@
     r = mch_chdir((char *)dir_name);
     vim_free(dir_name);
     return r;
-#endif
 }
 
 /*
diff --git a/src/normal.c b/src/normal.c
index 0ce0d4e..6fcdaeb 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -4049,7 +4049,6 @@
     }
 }
 
-#ifdef FEAT_SEARCHPATH
 /*
  * Grab the file name under the cursor and edit it.
  */
@@ -4092,7 +4091,6 @@
     else
 	clearop(cap->oap);
 }
-#endif
 
 /*
  * <End> command: to end of current line or last line.
@@ -4439,12 +4437,10 @@
     old_pos = curwin->w_cursor;
     curwin->w_cursor.coladd = 0;    // TODO: don't do this for an error.
 
-#ifdef FEAT_SEARCHPATH
     // "[f" or "]f" : Edit file under the cursor (same as "gf")
     if (cap->nchar == 'f')
 	nv_gotofile(cap);
     else
-#endif
 
 #ifdef FEAT_FIND_ID
     // Find the occurrence(s) of the identifier or define under cursor
@@ -6079,14 +6075,12 @@
 	    invoke_edit(cap, FALSE, 'g', FALSE);
 	break;
 
-#ifdef FEAT_SEARCHPATH
     // "gf": goto file, edit file under cursor
     // "]f" and "[f": can also be used.
     case 'f':
     case 'F':
 	nv_gotofile(cap);
 	break;
-#endif
 
     // "g'm" and "g`m": jump to mark without setting pcmark
     case '\'':
diff --git a/src/option.c b/src/option.c
index f3c53b2..05e0527 100644
--- a/src/option.c
+++ b/src/option.c
@@ -220,7 +220,6 @@
 	}
     }
 
-#ifdef FEAT_SEARCHPATH
     {
 	char_u	*cdpath;
 	char_u	*buf;
@@ -262,7 +261,6 @@
 		vim_free(cdpath);
 	}
     }
-#endif
 
 #if defined(FEAT_POSTSCRIPT) && \
 	(defined(MSWIN) || defined(VMS) || defined(MAC) || defined(hpux))
@@ -5519,9 +5517,7 @@
 	case PV_SI:	return (char_u *)&(curbuf->b_p_si);
 	case PV_SN:	return (char_u *)&(curbuf->b_p_sn);
 	case PV_STS:	return (char_u *)&(curbuf->b_p_sts);
-#ifdef FEAT_SEARCHPATH
 	case PV_SUA:	return (char_u *)&(curbuf->b_p_sua);
-#endif
 	case PV_SWF:	return (char_u *)&(curbuf->b_p_swf);
 #ifdef FEAT_SYN_HL
 	case PV_SMC:	return (char_u *)&(curbuf->b_p_smc);
@@ -6080,10 +6076,8 @@
 	    buf->b_p_key = vim_strsave(p_key);
 	    COPY_OPT_SCTX(buf, BV_KEY);
 #endif
-#ifdef FEAT_SEARCHPATH
 	    buf->b_p_sua = vim_strsave(p_sua);
 	    COPY_OPT_SCTX(buf, BV_SUA);
-#endif
 #ifdef FEAT_KEYMAP
 	    buf->b_p_keymap = vim_strsave(p_keymap);
 	    COPY_OPT_SCTX(buf, BV_KMAP);
@@ -6380,20 +6374,14 @@
 		|| p == (char_u *)&p_path
 		|| p == (char_u *)&p_pp
 		|| p == (char_u *)&p_rtp
-#ifdef FEAT_SEARCHPATH
 		|| p == (char_u *)&p_cdpath
-#endif
 #ifdef FEAT_SESSION
 		|| p == (char_u *)&p_vdir
 #endif
 		)
 	{
 	    xp->xp_context = EXPAND_DIRECTORIES;
-	    if (p == (char_u *)&p_path
-#ifdef FEAT_SEARCHPATH
-		    || p == (char_u *)&p_cdpath
-#endif
-		   )
+	    if (p == (char_u *)&p_path || p == (char_u *)&p_cdpath)
 		xp->xp_backslash = XP_BS_THREE;
 	    else
 		xp->xp_backslash = XP_BS_ONE;
diff --git a/src/option.h b/src/option.h
index 4d9f7e2..d40dcb5 100644
--- a/src/option.h
+++ b/src/option.h
@@ -780,9 +780,7 @@
 #endif
 EXTERN char_u	*p_pm;		// 'patchmode'
 EXTERN char_u	*p_path;	// 'path'
-#ifdef FEAT_SEARCHPATH
 EXTERN char_u	*p_cdpath;	// 'cdpath'
-#endif
 #if defined(DYNAMIC_PERL)
 EXTERN char_u	*p_perldll;	// 'perldll'
 #endif
@@ -908,9 +906,7 @@
 EXTERN int	p_sta;		// 'smarttab'
 EXTERN long	p_sts;		// 'softtabstop'
 EXTERN int	p_sb;		// 'splitbelow'
-#if defined(FEAT_SEARCHPATH)
 EXTERN char_u	*p_sua;		// 'suffixesadd'
-#endif
 EXTERN int	p_swf;		// 'swapfile'
 #ifdef FEAT_SYN_HL
 EXTERN long	p_smc;		// 'synmaxcol'
@@ -1196,9 +1192,7 @@
     , BV_SPO
 #endif
     , BV_STS
-#ifdef FEAT_SEARCHPATH
     , BV_SUA
-#endif
     , BV_SW
     , BV_SWF
 #ifdef FEAT_EVAL
diff --git a/src/optiondefs.h b/src/optiondefs.h
index be9a86e..de63ceb 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -123,9 +123,7 @@
 # define PV_SPO		OPT_BUF(BV_SPO)
 #endif
 #define PV_STS		OPT_BUF(BV_STS)
-#ifdef FEAT_SEARCHPATH
-# define PV_SUA		OPT_BUF(BV_SUA)
-#endif
+#define PV_SUA		OPT_BUF(BV_SUA)
 #define PV_SW		OPT_BUF(BV_SW)
 #define PV_SWF		OPT_BUF(BV_SWF)
 #ifdef FEAT_EVAL
@@ -546,13 +544,8 @@
 			    {(char_u *)FALSE, (char_u *)0L}
 			    SCTX_INIT},
     {"cdpath",	    "cd",   P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
-#ifdef FEAT_SEARCHPATH
 			    (char_u *)&p_cdpath, PV_NONE,
 			    {(char_u *)",,", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
 			    SCTX_INIT},
     {"cedit",	    NULL,   P_STRING,
 #ifdef FEAT_CMDWIN
@@ -2380,13 +2373,8 @@
 			    {(char_u *)".bak,~,.o,.h,.info,.swp,.obj",
 				(char_u *)0L} SCTX_INIT},
     {"suffixesadd", "sua",  P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP,
-#ifdef FEAT_SEARCHPATH
 			    (char_u *)&p_sua, PV_SUA,
 			    {(char_u *)"", (char_u *)0L}
-#else
-			    (char_u *)NULL, PV_NONE,
-			    {(char_u *)0L, (char_u *)0L}
-#endif
 			    SCTX_INIT},
     {"swapfile",    "swf",  P_BOOL|P_VI_DEF|P_RSTAT,
 			    (char_u *)&p_swf, PV_SWF,
diff --git a/src/optionstr.c b/src/optionstr.c
index 4fbfcc9..13302ef 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -253,9 +253,7 @@
     check_string_option(&buf->b_s.b_p_spl);
     check_string_option(&buf->b_s.b_p_spo);
 #endif
-#ifdef FEAT_SEARCHPATH
     check_string_option(&buf->b_p_sua);
-#endif
     check_string_option(&buf->b_p_cink);
     check_string_option(&buf->b_p_cino);
     check_string_option(&buf->b_p_cinsd);
diff --git a/src/register.c b/src/register.c
index 22b79ab..6a9cb1e 100644
--- a/src/register.c
+++ b/src/register.c
@@ -914,7 +914,6 @@
 		emsg(_(e_no_inserted_text_yet));
 	    return TRUE;
 
-#ifdef FEAT_SEARCHPATH
 	case Ctrl_F:		// Filename under cursor
 	case Ctrl_P:		// Path under cursor, expand via "path"
 	    if (!errmsg)
@@ -923,7 +922,6 @@
 			    | (regname == Ctrl_P ? FNAME_EXP : 0), 1L, NULL);
 	    *allocated = TRUE;
 	    return TRUE;
-#endif
 
 	case Ctrl_W:		// word under cursor
 	case Ctrl_A:		// WORD (mnemonic All) under cursor
@@ -2586,10 +2584,8 @@
 	case ':':		// last command line
 	case '/':		// last search-pattern
 	case '.':		// last inserted text
-# ifdef FEAT_SEARCHPATH
 	case Ctrl_F:		// Filename under cursor
 	case Ctrl_P:		// Path under cursor, expand via "path"
-# endif
 	case Ctrl_W:		// word under cursor
 	case Ctrl_A:		// WORD (mnemonic All) under cursor
 	case '_':		// black hole: always empty
diff --git a/src/structs.h b/src/structs.h
index a507a37..28cfa00 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -2973,9 +2973,7 @@
     int		b_p_si;		// 'smartindent'
     long	b_p_sts;	// 'softtabstop'
     long	b_p_sts_nopaste; // b_p_sts saved for paste mode
-#ifdef FEAT_SEARCHPATH
     char_u	*b_p_sua;	// 'suffixesadd'
-#endif
     int		b_p_swf;	// 'swapfile'
 #ifdef FEAT_SYN_HL
     long	b_p_smc;	// 'synmaxcol'
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index e303212..56629d9 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -949,7 +949,6 @@
 
 " Test for the default CDPATH option
 func Test_opt_default_cdpath()
-  CheckFeature file_in_path
   let after =<< trim [CODE]
     call assert_equal(',/path/to/dir1,/path/to/dir2', &cdpath)
     call writefile(v:errors, 'Xtestout')
diff --git a/src/version.c b/src/version.c
index c17f7f8..ac14bbd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -246,11 +246,7 @@
 	"-extra_search",
 #endif
 	"-farsi",
-#ifdef FEAT_SEARCHPATH
 	"+file_in_path",
-#else
-	"-file_in_path",
-#endif
 #ifdef FEAT_FIND_ID
 	"+find_in_path",
 #else
@@ -732,6 +728,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    265,
+/**/
     264,
 /**/
     263,
diff --git a/src/window.c b/src/window.c
index 3ee65fb..8c42b60 100644
--- a/src/window.c
+++ b/src/window.c
@@ -136,10 +136,8 @@
 {
     long	Prenum1;
     win_T	*wp;
-#if defined(FEAT_SEARCHPATH) || defined(FEAT_FIND_ID)
     char_u	*ptr;
     linenr_T    lnum = -1;
-#endif
 #ifdef FEAT_FIND_ID
     int		type = FIND_DEFINE;
     int		len;
@@ -521,7 +519,6 @@
 		do_nv_ident(Ctrl_RSB, NUL);
 		break;
 
-#ifdef FEAT_SEARCHPATH
 // edit file name under cursor in a new window
     case 'f':
     case 'F':
@@ -534,9 +531,9 @@
 		{
 		    tabpage_T	*oldtab = curtab;
 		    win_T	*oldwin = curwin;
-# ifdef FEAT_GUI
+#ifdef FEAT_GUI
 		    need_mouse_correct = TRUE;
-# endif
+#endif
 		    setpcmark();
 		    if (win_split(0, 0) == OK)
 		    {
@@ -559,7 +556,6 @@
 		    vim_free(ptr);
 		}
 		break;
-#endif
 
 #ifdef FEAT_FIND_ID
 // Go to the first occurrence of the identifier under cursor along path in a
@@ -637,13 +633,12 @@
 			do_nv_ident('g', xchar);
 			break;
 
-#ifdef FEAT_SEARCHPATH
 		    case 'f':	    // CTRL-W gf: "gf" in a new tab page
 		    case 'F':	    // CTRL-W gF: "gF" in a new tab page
 			cmdmod.cmod_tab = tabpage_index(curtab) + 1;
 			nchar = xchar;
 			goto wingotofile;
-#endif
+
 		    case 't':	    // CTRL-W gt: go to next tab page
 			goto_tabpage((int)Prenum);
 			break;
@@ -713,11 +708,9 @@
 #if defined(FEAT_QUICKFIX)
     case '}':
 #endif
-#ifdef FEAT_SEARCHPATH
     case 'f':
     case 'F':
     case Ctrl_F:
-#endif
 #ifdef FEAT_FIND_ID
     case 'i':
     case Ctrl_I: