patch 8.0.1734: package directory not added to 'rtp' if prefix matches

Problem:    Package directory not added to 'rtp' if prefix matches.
Solution:   Check the match is a full match. (Ozaki Kiichi, closes #2817)
            Also handle different ways of spelling a path.
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 83f0966..3946627 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3821,10 +3821,30 @@
     static void
 add_pack_plugin(char_u *fname, void *cookie)
 {
-    if (cookie != &APP_LOAD && strstr((char *)p_rtp, (char *)fname) == NULL)
-	/* directory is not yet in 'runtimepath', add it */
-	if (add_pack_dir_to_rtp(fname) == FAIL)
+    if (cookie != &APP_LOAD)
+    {
+	char_u	*buf = alloc(MAXPATHL);
+	char_u	*p;
+	int	found = FALSE;
+
+	if (buf == NULL)
 	    return;
+	p = p_rtp;
+	while (*p != NUL)
+	{
+	    copy_option_part(&p, buf, MAXPATHL, ",");
+	    if (pathcmp((char *)buf, (char *)fname, -1) == 0)
+	    {
+		found = TRUE;
+		break;
+	    }
+	}
+	vim_free(buf);
+	if (!found)
+	    /* directory is not yet in 'runtimepath', add it */
+	    if (add_pack_dir_to_rtp(fname) == FAIL)
+		return;
+    }
 
     if (cookie != &APP_ADD_DIR)
 	load_pack_plugin(fname);