patch 7.4.1479
Problem:    No testfor ":loadplugin".
Solution:   Add a test.  Fix how option is being set.
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 3768569..52575bf 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3058,14 +3058,14 @@
     static void
 may_do_filetypes(char_u *pat)
 {
-    char_u *cmd = vim_strsave((char_u *)"did_load_filetypes");
+    char_u *cmd = vim_strsave((char_u *)"g:did_load_filetypes");
 
     /* If runtime/filetype.vim wasn't loaded yet, the scripts will be found
      * when it loads. */
     if (cmd != NULL && eval_to_number(cmd) > 0)
     {
 	do_cmdline_cmd((char_u *)"augroup filetypedetect");
-	source_runtime(pat, TRUE);
+	do_in_path(p_pp, pat, TRUE, source_callback, NULL);
 	do_cmdline_cmd((char_u *)"augroup END");
     }
     vim_free(cmd);
@@ -3125,8 +3125,8 @@
 	if (p_rtp[keep] != NUL)
 	    mch_memmove(new_rtp + keep + 1 + addlen, p_rtp + keep,
 							   oldlen - keep + 1);
-	free_string_option(p_rtp);
-	p_rtp = new_rtp;
+	set_option_value((char_u *)"rtp", 0L, new_rtp, 0);
+	vim_free(new_rtp);
     }
     *p2 = c;
 
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 8901b15..4c3c616 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -178,6 +178,7 @@
 	    test_increment.res \
 	    test_json.res \
 	    test_langmap.res \
+	    test_loadplugin.res \
 	    test_perl.res \
 	    test_quickfix.res \
 	    test_syntax.res \
diff --git a/src/testdir/test_loadplugin.vim b/src/testdir/test_loadplugin.vim
new file mode 100644
index 0000000..25c6715
--- /dev/null
+++ b/src/testdir/test_loadplugin.vim
@@ -0,0 +1,25 @@
+" Tests for :loadplugin
+
+func Test_loadplugin()
+  let topdir = expand('%:h') . '/Xdir'
+  exe 'set packpath=' . topdir
+  let plugdir = topdir . '/pack/mine/opt/mytest'
+  call mkdir(plugdir . '/plugin', 'p')
+  call mkdir(plugdir . '/ftdetect', 'p')
+  filetype on
+  try
+    exe 'split ' . plugdir . '/plugin/test.vim'
+    call setline(1, 'let g:plugin_works = 42')
+    wq
+
+    exe 'split ' . plugdir . '/ftdetect/test.vim'
+    call setline(1, 'let g:ftdetect_works = 17')
+    wq
+
+    loadplugin mytest
+    call assert_true(42, g:plugin_works)
+    call assert_true(17, g:ftdetect_works)
+  finally
+    call delete(topdir, 'rf')
+  endtry
+endfunc
diff --git a/src/version.c b/src/version.c
index 0731d61..d13f47a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1479,
+/**/
     1478,
 /**/
     1477,