updated for version 7.0074
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index fc49b79..7b8d6bc 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -55,7 +55,7 @@
 int makemap __ARGS((FILE *fd, buf_T *buf));
 int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
 void check_map_keycodes __ARGS((void));
-char_u *check_map __ARGS((char_u *keys, int mode, int exact));
+char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod));
 void init_mappings __ARGS((void));
 void add_map __ARGS((char_u *map, int mode));
 /* vim: set ft=c : */
diff --git a/src/quickfix.c b/src/quickfix.c
index a481b0f..8d50322 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -492,11 +492,15 @@
 		 */
 		if ((i = (int)fmt_ptr->addr[0]) > 0)		/* %f */
 		{
-		    len = (int)(regmatch.endp[i] - regmatch.startp[i]);
-		    STRNCPY(namebuf, regmatch.startp[i], len);
-		    namebuf[len] = NUL;
+		    int c = *regmatch.endp[i];
+
+		    /* Expand ~/file and $HOME/file to full path. */
+		    *regmatch.endp[i] = NUL;
+		    expand_env(regmatch.startp[i], namebuf, CMDBUFFSIZE);
+		    *regmatch.endp[i] = c;
+
 		    if (vim_strchr((char_u *)"OPQ", idx) != NULL
-			    && mch_getperm(namebuf) == -1)
+						&& mch_getperm(namebuf) == -1)
 			continue;
 		}
 		if ((i = (int)fmt_ptr->addr[1]) > 0)		/* %n */
@@ -2788,8 +2792,9 @@
  * of dictionaries.
  */
     int
-set_errorlist(list)
+set_errorlist(list, action)
     list_T	*list;
+    int		action;
 {
     listitem_T	*li;
     dict_T	*d;
@@ -2801,8 +2806,16 @@
     int		valid, status;
     int		retval = OK;
 
-    /* make place for a new list */
-    qf_new_list();
+    if (action == ' ' || qf_curlist == qf_listcount)
+	/* make place for a new list */
+	qf_new_list();
+    else if (action == 'a' && qf_lists[qf_curlist].qf_count > 0)
+	/* Adding to existing list, find last entry. */
+	for (prevp = qf_lists[qf_curlist].qf_start;
+	     prevp->qf_next != prevp; prevp = prevp->qf_next)
+	    ;
+    else if (action == 'r')
+	qf_free(qf_curlist);
 
     for (li = list->lv_first; li != NULL; li = li->li_next)
     {
diff --git a/src/screen.c b/src/screen.c
index 58fb4d0..0139788 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -4818,6 +4818,7 @@
 
 #ifdef FEAT_WILDMENU
 static int status_match_len __ARGS((expand_T *xp, char_u *s));
+static int skip_status_match_char __ARGS((expand_T *xp, char_u *s));
 
 /*
  * Get the lenght of an item as it will be shown in the status line.
@@ -4840,12 +4841,7 @@
 
     while (*s != NUL)
     {
-	/* Don't display backslashes used for escaping, they look ugly. */
-	if (rem_backslash(s)
-#ifdef FEAT_MENU
-		|| (emenu && (s[0] == '\\' && s[1] != NUL))
-#endif
-		)
+	if (skip_status_match_char(xp, s))
 	    ++s;
 	len += ptr2cells(s);
 	mb_ptr_adv(s);
@@ -4855,6 +4851,24 @@
 }
 
 /*
+ * Return TRUE for characters that are not displayed in a status match.
+ * These are backslashes used for escaping.  Do show backslashes in help tags.
+ */
+    static int
+skip_status_match_char(xp, s)
+    expand_T	*xp;
+    char_u	*s;
+{
+    return ((rem_backslash(s) && xp->xp_context != EXPAND_HELP)
+#ifdef FEAT_MENU
+	    || ((xp->xp_context == EXPAND_MENUS
+		    || xp->xp_context == EXPAND_MENUNAMES)
+			  && (s[0] == '\t' || (s[0] == '\\' && s[1] != NUL)))
+#endif
+	   );
+}
+
+/*
  * Show wildchar matches in the status line.
  * Show at least the "match" item.
  * We start at item 'first_match' in the list and show all matches that fit.
@@ -4989,13 +5003,7 @@
 #endif
 	    for ( ; *s != NUL; ++s)
 	{
-	    /* Don't display backslashes used for escaping, they look ugly. */
-	    if (rem_backslash(s)
-#ifdef FEAT_MENU
-		    || (emenu
-			  && (s[0] == '\t' || (s[0] == '\\' && s[1] != NUL)))
-#endif
-		    )
+	    if (skip_status_match_char(xp, s))
 		++s;
 	    clen += ptr2cells(s);
 #ifdef FEAT_MBYTE
diff --git a/src/version.h b/src/version.h
index b6d6137..233eb00 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 19)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 19, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 20)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 20, compiled "